Javascript变量类型

Javascript variable types

本文关键字:类型 变量 Javascript      更新时间:2023-09-26

你们能解释一下下面两个变量的区别吗?

var test = {};
var test2 = [];

它们不是都声明了一个数组变量吗?如果不是,什么时候用哪个?

第一个创建一个对象(没有任何属性的空对象)。

第二个函数创建一个空数组。

让我们举一个操作对象的例子:

var test = { firstName: 'Foo', lastName: 'Bar' };
alert(test.firstName);

您还可以动态扩展现有的空对象并为其添加属性:

var test = {  };
test.firstName = 'Foo'; // or an equivalent: test['firstName'] = 'Foo';
alert(test.firstName);

和数组:

var test2 = [ { firstName: 'Foo', lastName: 'Bar' }, 
              { firstName: 'Foo 2', lastName: 'Bar 2' } ];
for (var i = 0; i < test2.length; i++) {
    alert(test2[i].firstName);
}

或向数组中添加元素:

var test = { firstName: 'Foo', lastName: 'Bar' };
var test2 = [ ];
test2.push(test); // the array contains 1 element now
alert(test2[0].firstName);

第一个变量test是一个对象,有变量keysvalues,第二个变量test2是一个数组,有固定的keys(0,1,2,3,…)

例如:

var test = ['a', 'b', 'c'];
alert(test[0]);       // alerts 'a'

var test2 = {
  first: 'a', 
  second: 'b', 
  third: 'c'
};
alert(test2.first);    // alerts 'a'
alert(test2['first']); // alerts 'a'

第一个是对象表示法,第二个是数组对象(它本身就是一个对象)。

可以在对象中存储关联数据,但数组键只能是数字。

这里我提供了一个代码链接,我准备用例子和细节来解释你:JavaScript变量声明和类型,点击链接阅读代码,自己测试并给出一个喜欢。

https://code.sololearn.com/Wef3g7HLH5SM/?ref=app

下面是代码:

<!-- 
In JavaScript you don not have to declare explicitly the type of variables, however JavaScript variables
can hold many data types: numbers, strings, objects. Below I am going to provide you couple examples, 
I hope they help you!
-->
<!DOCTYPE html>
<html>
    <body>
    <p id="demo"></p>
    <script>
    // Single line comment
    /*
      Multi-lines comment
    */
    /*
      The typeof operator can return one of these primitive types:
        * string
        * number
        * boolean
        * null
        * undefined
    */

    var person = undefined; // a variable without a value, has the value 'undefined'
    var vehicle  = "";      // The value is "", the typeof is "string"
    /* 
      null type, is "nothing". It is supposed to be something that doesn't exist.
    */
    var house = null;      // Value is null, but type is still an object
    var number = 1;
    /* 
      JavaScript has dynamic types. Meaning that
      you can use the same variable to hold different data types.
    */
    var x;              // Now x is undefined
    var x = 6;          // Now x is a Number
    var x = "Sam";      // Now x is a String
    /*
      Numbers can be written with, or without decimals places
    */
    var x1 = 2.50;     // Written with decimals
    var x2 = 5;        // Written without decimals
    /*
      Extra large or extra small numbers can be written with 
      scientific (exponential) notation
    */
    var a = 123e4;      // will print: 1230000
    var b = 123e-4;     // will print: 0.0123
    /*
      Booleans can only have two values: true or false.
    */
    var y = true;
    var z = false;
    /* 
      Single or double quotes can be use to write Strings. 
    */
    var stringVariable1 = "This is my name: 'Sam'"; // Using single quotes
    var stringVariable2 = 'Here, my name: "Sam"'; // Using double quotes
    /*
      JavaScript arrays are written with square brackets.
      Array items are separated by commas.
    */
    var girls = ["Julia", "Mary", "Olivia"];
    /*
      JavaScript objects are written with curly braces.
      Object properties are written as name: value pairs, separated by commas.
    */
    var userData = {firstName:"John", lastName:"Doe", userName:"JDoe",
        password:123456};
    document.getElementById("demo").innerHTML =

    typeof person + "<br>" +
    typeof vehicle + "<br>" +
    typeof number + "<br>" +
    typeof y + "<br>" +
    typeof house + "<br>" +
    number + "<br>" +
    x + "<br>" +
    x1 + "<br>" +
    x2 + "<br>" +
    a + "<br>" +
    b + "<br>" +
    y + "<br>" +
    z + "<br>" +
    stringVariable1 + "<br>" + 
    stringVariable2 + "<br>" +
    // here I am going to print the value on array, index 0
    girls[0] + "<br>" +
    userData.firstName + "'s userID: " + userData.userName + 
                         " and pwd: " + userData.password;
    </script>
    </body>
</html>