JavaScript 数组:array() 和 [] 的区别

在 JavaScript 中,我们可以使用 array() 或 [] 来声明一个数组。虽然它们都会创建一个数组对象,但是它们之间有一些细微的差异。

array()

array() 是 Array 构造函数的一个别名,它接受任意数量的参数来初始化新数组的值。例如:

----- ---- - -------- -- ---
------------------ -- -- --- -- --

----- ---- - ---------
------------------ -- -- ----------- ---------- ----------

当你给 array() 函数传递一个数字参数时,它会创建一个具有指定长度的数组,但每个元素的值都是 undefined

[]

[] 是 JavaScript 中的数组字面量语法,它允许您使用方括号来定义一个新数组,并用逗号分隔每个元素。例如:

----- ---- - --- -- ---
------------------ -- -- --- -- --

----- ---- - --- ---------
------------------ -- -- ----------- ---------- ----------

与 array() 不同,[] 能够正确地初始化所有元素,即使它们的值为 undefined

----- ---- - -- - ---
------------------ -- -- ----------- ---------- ----------

区别

array() 和 [] 之间的最大区别是它们的行为方式。array() 在解析时是一个函数调用,而 [] 是一个 JavaScript 语法结构。因此,当您使用 array() 时,您实际上只是在创建一个新的数组对象,并将参数传递给它。与此相反,使用 [] 时,JavaScript 解释器会生成代码来直接创建一个新数组。

此外,array() 具有一些不同的行为,比如允许省略 new 操作符、不能正确初始化所有元素等。

建议

对于大多数常规用途,建议使用 [] 来声明 JavaScript 数组,因为它更简洁易读,并具有可预测的行为。另外,在需要指定数组长度时,最好使用 Array 构造函数,例如 new Array(3)

如果您决定使用 array(),请确保您已经熟悉了它的行为方式,并注意到其中的细微差别。

示例代码

-- -- ------- ----
----- ---- - -------- -- ---
------------------ -- -- --- -- --

-- -- -- ----
----- ---- - --- -- ---
------------------ -- -- --- -- --

-- -- ----- -------------
----- ---- - --- ---------
------------------ -- -- ----------- ---------- ----------

-- --------- --------- --
----- ---- - -- - ---
------------------ -- -- ----------- ---------- ----------

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/8025