【问题标题】:Difference between a = [undefined] and a = new Array(1) [duplicate]a = [undefined] 和 a = new Array(1) [重复] 之间的区别
【发布时间】:2016-03-15 22:36:03
【问题描述】:
var a = [undefined, undefined];
var b = new Array(2);

0 in a // returns true
1 in a // returns true
0 in b // returns false
1 in b // returns false

谁能向我解释为什么会这样?

【问题讨论】:

    标签: javascript arrays object constructor


    【解决方案1】:
    b = new Array(2);
    

    只是说,b 是一个大小为 2 的数组。但是数组只是空的。它没有任何元素。因此,没有这样的索引。所以,01 还没有出现在 b 中。这些被称为孔。

    但是,当你说

    var a = [undefined, undefined];
    

    您正在创建一个包含两个元素的数组。所以,它在索引01 处有undefined。这就是为什么它们都存在于数组中。


    注意:当你只是给一个变量赋值,而不用varletconst)声明它,它将成为一个全局变量。

    【讨论】:

    • 在你的笔记中,你忘了说严格模式! @Rohit 请始终使用严格模式!
    猜你喜欢
    • 1970-01-01
    • 2016-02-17
    • 1970-01-01
    • 1970-01-01
    • 2014-12-05
    • 2019-12-18
    • 1970-01-01
    • 1970-01-01
    • 2014-04-12
    相关资源
    最近更新 更多