您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

声明JavaScript数组时,“ Array()”和“ []”之间有什么区别?

声明JavaScript数组时,“ Array()”和“ []”之间有什么区别?

有所不同,但在该示例中没有区别。

使用更冗长的方法new Array()在参数中确实有一个额外的选择:如果将数字传递给构造函数,则将获得该长度的数组:

x = new Array(5);
alert(x.length); // 5

为了说明创建数组的不同方法

var a = [],            // these are the same
    b = new Array(),   // a and b are arrays with length 0

    c = ['foo', 'bar'],           // these are the same
    d = new Array('foo', 'bar'),  // c and d are arrays with 2 strings

    // these are different:
    e = [3]             // e.length == 1, e[0] == 3
    f = new Array(3),   // f.length == 3, f[0] == undefined

;

一个区别是,使用时,newArray()您可以设置数组的大小,这会影响堆栈的大小。如果您遇到堆栈溢出(Array.push与Array.unshift的性能)(当数组的大小超过堆栈的大小并必须重新创建它时会发生这种情况),这将很有用。因此,实际上,根据使用情况,使用时newArray()可以提高性能,因为可以防止发生溢出。

如该答案所指出的,newArray(5)实际上不会将五个undefined项目添加到数组中。它只是增加了五个项目的空间。请注意,使用Array这种方式很难依靠它来array.length进行计算。

javascript 2022/1/1 18:15:16 有670人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶