在 JSLint 中,它警告说
var x = new Array();
(那不是真正的变量名)应该是
var result = [];
第一种语法有什么问题?建议背后的原因是什么?
在 JSLint 中,它警告说
var x = new Array();
(那不是真正的变量名)应该是
var result = [];
第一种语法有什么问题?建议背后的原因是什么?
使用[]
比使用更安全new Array()
,因为您实际上可以覆盖Array
JavaScript 中的值:
Array = function() { };
var x = new Array();
// x is now an Object instead of an Array.
换句话说,[]
是明确的。
克罗克福德不喜欢new
。因此,JSLint 希望您尽可能避免它。并且可以在不使用new
...的情况下创建新的数组对象。
根据浏览器或环境的不同,您似乎可以获得不同的性能,具体取决于您使用的内容和用途:
http://jsperf.com/new-array-vs-literal/11 ( [1,.2] vs new Array(1,.2) ) 在这种情况下,文字速度更快。
http://jsperf.com/new-array-vs-literal/7 ( new Array(500000) vs [].length(500000) ) new Array 在 chrome v21 中速度更快,这个测试似乎提高了大约 7% 或 30 %) 取决于你做什么。
两种形式都没有错,但您通常会看到尽可能使用文字 -
变种S =“”不是更正确大于变种S =新的String()....
第一种语法本身没有问题。事实上,在w3schools 上,它列出new Array()
了创建数组的方式。问题是这是“老方法”。“新方法”[]
更短,允许您初始化数组中的值,如["foo", "bar"]
. 多数开发商宁愿[]
以new Array()
在良好作风方面。