什么是JavaScript数组的文字符号,你应该何时使用它?
-
11-09-2019 - |
题
的JSLint是给我这个错误:
问题在管线11字符33:使用阵列文字符号[]
var myArray = new Array();
什么是数组的文字符号和它为什么要我用它代替?
在这里显示,new Array();
应该工作正常...有什么我失踪?
解决方案
阵列的文字符号中,可以定义仅使用空白括号一个新的数组。在您的示例:
var myArray = [];
有限定阵列的“新”的方式,我想是短/清洁剂。
下面的实施例解释它们的区别是:
var a = [], // these are the same
b = new Array(), // a and b are arrays with length 0
c = ['foo', 'bar'], // these are the same
d = new Array('foo', 'bar'), // c and d are arrays with 2 strings
// these are different:
e = [3], // e.length == 1, e[0] == 3
f = new Array(3); // f.length == 3, f[0] == undefined
其他提示
除了从克罗克福德参数,相信它也是由于这样的事实,其他语言有这种情况发生,以使用相同的语法相似的数据结构;例如, Python有列表和字典;见下面的例子:
// this is a Python list
a = [66.25, 333, 333, 1, 1234.5]
// this is a Python dictionary
tel = {'jack': 4098, 'sape': 4139}
是不是干净的Python怎么也语法正确的Javascript? (是的,结束分号丢失,但这些不是必需为Javascript,要么)
因此,通过编程重用通用的范例,我们节省大家不必重新学习的东西,不应该。
除了从克罗克福德的说法,jsPerf说,它的速度更快。 http://jsperf.com/new-vs-literal-array-declaration
看着@ecMode jsperf后,我做了一些进一步的测试。
当使用按键添加到阵列新阵列()是相当快的铬:
http://jsperf.com/new-vs-literal-array-声明/ 2
使用索引添加稍微为[]快。
不隶属于 StackOverflow