在 JavaScript 中,我们可以使用 array() 或 [] 来声明一个数组。虽然它们都会创建一个数组对象,但是它们之间有一些细微的差异。
array()
array() 是 Array 构造函数的一个别名,它接受任意数量的参数来初始化新数组的值。例如:
const arr1 = array(1, 2, 3); console.log(arr1); // 输出 [1, 2, 3] const arr2 = array(3); console.log(arr2); // 输出 [undefined, undefined, undefined]
当你给 array() 函数传递一个数字参数时,它会创建一个具有指定长度的数组,但每个元素的值都是 undefined
。
[]
[] 是 JavaScript 中的数组字面量语法,它允许您使用方括号来定义一个新数组,并用逗号分隔每个元素。例如:
const arr1 = [1, 2, 3]; console.log(arr1); // 输出 [1, 2, 3] const arr2 = new Array(3); console.log(arr2); // 输出 [undefined, undefined, undefined]
与 array() 不同,[] 能够正确地初始化所有元素,即使它们的值为 undefined
:
const arr3 = [, , ,]; console.log(arr3); // 输出 [undefined, undefined, undefined]
区别
array() 和 [] 之间的最大区别是它们的行为方式。array() 在解析时是一个函数调用,而 [] 是一个 JavaScript 语法结构。因此,当您使用 array() 时,您实际上只是在创建一个新的数组对象,并将参数传递给它。与此相反,使用 [] 时,JavaScript 解释器会生成代码来直接创建一个新数组。
此外,array() 具有一些不同的行为,比如允许省略 new 操作符、不能正确初始化所有元素等。
建议
对于大多数常规用途,建议使用 [] 来声明 JavaScript 数组,因为它更简洁易读,并具有可预测的行为。另外,在需要指定数组长度时,最好使用 Array 构造函数,例如 new Array(3)
。
如果您决定使用 array(),请确保您已经熟悉了它的行为方式,并注意到其中的细微差别。
示例代码
-- -------------------- ---- ------- -- -- ------- ---- ----- ---- - -------- -- --- ------------------ -- -- --- -- -- -- -- -- ---- ----- ---- - --- -- --- ------------------ -- -- --- -- -- -- -- ----- ------------- ----- ---- - --- --------- ------------------ -- -- ----------- ---------- ---------- -- --------- --------- -- ----- ---- - -- - --- ------------------ -- -- ----------- ---------- ----------
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/8025