var x = new Array()有什么问题;

在JSLint中,它警告说

var x = new Array(); 

(这不是一个真正的variables名)应该是

 var result = []; 

第一种语法有什么问题? 这个build议背后的推理是什么?

克罗克福德不喜欢new 。 因此, JSLint希望尽可能避免它 。 而创build一个新的数组对象是可能的,而无需使用new ….

使用[]比使用new Array()更安全,因为实际上可以在JavaScript中覆盖Array的值:

 Array = function() { }; var x = new Array(); // x is now an Object instead of an Array. 

换句话说, []是明确的。

看来你可以得到不同的性能基于你使用什么目的取决于浏览器或环境:

http://jsperf.com/new-array-vs-literal/11(%5B1,;.2 ] vs new Array(1,.2))在这种情况下,文字是更快的方式。

(新的数组(500000)vs [] .length(500000))新的arrays是更快的铬v21它似乎这个testing约7%或30 %)取决于你做什么。

任何一种forms都没有错,但是你通常会在任何可能的地方使用文字 –

var s =''不是比var s = new String()…. 正确

第一种语法本身没有任何问题。 实际上,在w3schools中 ,它列出了new Array()作为创build数组的方法。 问题是这是“老路”。 “new way”, []更短,并允许您初始化数组中的值,如["foo", "bar"] 。 大多数开发人员喜欢[]new Array()在良好的风格方面。