【问题标题】:What does [] mean in JavaScript?[] 在 JavaScript 中是什么意思?
【发布时间】:2010-02-17 11:48:41
【问题描述】:

在下面的 javascript 代码中,[] 被赋值为变量的值,这是什么意思?

var openTollDebug = [];

【问题讨论】:

    标签: javascript arrays variables


    【解决方案1】:

    它是一个数组字面量。它与声明 new Array() 不太一样——数组对象可以在 JavaScript 中被覆盖,但数组字面量不能。这是一个演示的例子

    // let's overwrite the Array object
    Array = function(id) {
     this.id = id;
    }
    
    var a = new Array(1);
    var b = [];
    
    console.log(a.hasOwnProperty("id")); // true
    console.log(b.hasOwnProperty("id")); // false
    
    console.log(a.push); // false, push doesn't exist on a
    console.log(b.push); // true,  but it does on b
    
    b.push(2);
    console.log(b); // outputs [2]
    

    【讨论】:

    • 只要Array 未被覆盖,new Array() 和[] 在功能上是相同的。
    • @Tim - 是的。初始化值和长度也存在差异 - new Array(5) 与 [5] 不同 :)
    • 对于给出 -1 的人:为什么?我相信我有资格声明[] 和new Array() 与后者不完全相同是基于Array 未被覆盖的条件。
    • @RussCam, 那么我们如何覆盖[] 构造函数呢?
    【解决方案2】:

    表示数组。

    var openTollDebug = [];
    

    声明openTollDebug 变量并将其初始化为一个空数组。要将元素放入数组中,您可以执行以下操作:

    var stringArray = ['element1', 'element2', 'element3'];
    alert(stringArray[1]); // displays 'element2'
    var numberArray = [1, 2, 3, 4];
    alert(numberArray[2]); // displays 3
    var objectArray = [{ name: 'john' }, { name: 'peter' }, { name: 'tom' }];
    alert(objectArray[1].name); // displays 'peter'
    

    【讨论】:

      【解决方案3】:

      是一个空数组,等于

      var openTollDebug = new Array();
      

      【讨论】:

        【解决方案4】:

        它是空数组的简写。与新数组()相同。 {} 也是一个空对象。对象就像 Js 中的哈希表,因此您可以将其用作字典。

        【讨论】:

          【解决方案5】:

          它创建一个空数组。
          这是拥有非空对象的好方法。
          在 JavaScript 中,向该对象添加函数和属性非常容易。例如:

          openTollDebug.title = 'hello world';
          openTollDebug.show = function(){alert('Debug');};
          

          作为一个数组,你可以添加项:

          openTollDebug.push('added item');
          openTollDebug[3] = 'just add anywhere';
          

          【讨论】:

            【解决方案6】:

            许多语言都有文字结构。 [] 是一个数组文字。

            var openTollDebug = [];
            

            与

            相同
            var openTollDebug = new Array();
            

            只知道出于性能原因首选使用 []。

            还有其他字面量,比如对象字面量

            var MyObject = {
                          name:'default',
                          age:22,
                          hobbies:["golf","video games","otherstuff"]
            }
            

            注意带有数据的数组字面量。 [] 创建一个空数组。

            【讨论】:

              【解决方案7】:

              由于性能原因,请尝试使用文字。你不写

              var obj = new Object({name: 'John'})
              

              你随便写

              var obj = {name: 'John'}
              

              你也不写

              button.onclick = new Function("alert('Clicked!')"); 
              

              你写

              button.onclick = function () { alert('Clicked') }
              

              这里是a link 的一篇关于它的精彩博文

              【讨论】:

                【解决方案8】:
                var b = [] //it is an array literal.
                

                【讨论】:

                • 您应该检查是否有答案已经提供了相同的信息。
                猜你喜欢
                • 2017-06-11
                • 2015-07-15
                • 2018-07-17
                • 1970-01-01
                • 2011-04-16
                • 2011-06-20
                • 2017-03-02
                • 2013-02-14
                • 1970-01-01
                相关资源
                最近更新 更多