Array与[]的区别

Difference between Array and []

本文关键字:区别 Array      更新时间:2023-09-26

读取EDIT部分,问题无效

Array对象有reduce和其他方法,而as[]没有。所以数组和[]都是部分不同的类型(Is types是正确的词,因为javascript没有类型)。

var a = [];
var b = new Array();

如果object b是Array,那么object a应该表示为。

编辑:

很抱歉依赖于节点控制台的自动补全功能得出了错误的结论"[]"没有减少方法。

我输入Array.prototype.red<tab>列表减少方法。

其中[].red<tab>未列出还原方法

请投票结束这个问题

实际上,它们是相同的,但有一个特殊的情况,当只有一个整数作为参数给new Array

var arrayBrackets = [1, 2, 3],
    arrayWithNew = new Array(1, 2, 3),
    arrayWithNewSingle = new Array(3)
console.log(arrayBrackets)      // [1, 2, 3]
console.log(arrayWithNew)       // [1, 2, 3]
console.log(arrayWithNewSingle) // [undefined, undefined, undefined]

Javascript中的一些数据类型具有基本形式,如字符串和数字。原语和相应的对象并不相同,但是当您将方法应用于需要将原语转换为对象的原语时,原语值将自动转换为对象。像42这样的数字只是一个数值,但是您可以在任何时候使用(42).toString(),这将自动创建一个可以应用该方法的Number对象。

但是

Arrays没有原始值。数组字面值[]的结果是一个数组对象,就像从new Array();返回的那样。从一开始它们都是完整的对象,两种创建数组的方法的结果没有任何区别。


创建数组的两种方法是不同的。如果您使用带有单个数字参数的数组构造函数,它将创建一个具有该长度的数组,否则它将创建一个包含您调用它的项目的数组。还可以省略对象文字中的项,如[,,,1,2,,3,,],这将在数组中创建未定义的项。