javascript - 为什么使用 "new"创建 Javascript 数组被认为是错误的?

标签 javascript arrays

<分区>

W3 Schools says

These two different statements both create a new array containing 6 numbers:

 var points = new Array(40, 100, 1, 5, 25, 10)  // Bad 
 var points =[40, 100, 1, 5, 25, 10];          // Good

但没有解释为什么第一个不好。

据我了解,唯一的区别是第一个调用构造函数。谁能告诉我为什么第一个不好?

最佳答案

真正的原因是这个构造函数不一致。

var points = new Array(40)

创建一个大小为 40 且没有内容的数组

var points = new Array(40, 50)

创建一个包含 2 个元素的大小为 2 的数组。

使用起来更简单,更具可读性

var points = [40];

var points = [40, 50];

当你想构建一个数组时,也没有理由使用这个构造函数,只需使用一个文字数组,就像你使用文字数字一样。

仅当您想构建具有给定大小的空数组时才使用Array 构造函数(这种情况应该很少见)。

ES 2015 编辑:

由于这种不一致,ES2015 给我们带来了一个新的静态函数,Array.of . Array.of(40) 生成 [40] 数组。

关于javascript - 为什么使用 "new"创建 Javascript 数组被认为是错误的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29260212/

相关文章:

arrays - 在 2D numpy 数组的每个滚动窗口中获得最大值

C# PHP 样式数组键

python - 根据Python中另一个数组上的重复值合并数组?

C++:函数模板

javascript - 重构javascript。解耦标记或单独的模块

javascript - 可变变量可以从 Angular 服务内的闭包访问

javascript - 为什么点击的单元格没有背景颜色?

c++ - C++ 类数组的 Kotlin 等价物

javascript - 如何使用 jquery 或 javascript 插入附加文本

javascript - 在 Rails 应用程序中改进不显眼的 javascript(并可能使用 CoffeeScript)