我刚刚学习JavaScript,似乎有很多方法来声明数组。
var myArray = new Array()
var myArray = new Array(3)
var myArray = ["apples", "bananas", "oranges"]
var myArray = [3]
它们的区别是什么,首选的方式是什么?
根据this website,以下两行是非常不同的:
var badArray = new Array(10); // creates an empty Array that's sized for 10 elements
var goodArray= [10]; // creates an Array with 10 as the first element
正如你所看到的,这两行代码做了两件完全不同的事情。如果你想添加多个元素,那么badArray会被正确初始化,因为Javascript会很聪明地知道你正在初始化数组,而不是告诉你想添加多少元素。
作者想说的是Array(10)
创建了一个正好有10个元素的数组,而[10]
创建了一个第0个元素为10的未定义大小的数组吗?或者这意味着什么?
6条答案
按热度按时间vecaoik11#
在第一个例子中,你创建了一个空数组,和
var x = []
一样。第二个例子创建了一个大小为3的数组(所有元素都是undefined
)。第三个和第四个例子是一样的,它们都创建了一个包含这些元素的数组。使用
new Array()
时要小心。首选方法是使用
[]
语法。qncylg1j2#
首选方法是始终使用带方括号的文字语法;与
Array
不同,它的行为对于任意数量的项都是可预测的。此外,Array
不是关键字,尽管这不是一个实际情况,但有人可以很容易地覆盖它:但是,更大的问题是一致性问题。一些重构代码的人可能会遇到这个函数:
结果是,只需要
fetchValue(0)
,因此程序员删除了其他元素并中断代码,因为它现在返回undefined
:yrwegjxp3#
申报:
使用方法:
eivgtgni4#
创建阵列的方法有多种。
声明和初始化数组的传统方式如下所示:
或者......
mspsb9vt5#
如果要创建一个主要特征是长度而不是每个索引的值的数组,则将数组定义为
var a=Array(length);
是合适的。例如
9vw9lbht6#
你可以这样申报
常数[爱丽丝,鲍勃] = [1,2]
控制台日志(alice)// 1
控制台.log(bob)// 2