是
var myCars=new Array("Saab","Volvo","BMW");
Run Code Online (Sandbox Code Playgroud)
和
var myCars=["Saab","Volvo","BMW"];
Run Code Online (Sandbox Code Playgroud)
完全相同的 ?
Guf*_*ffa 25
是的,对于那种情况他们是一样的.
如果您只有一个项目,那就有区别,而且它是数字.这将创建一个包含单个项目的数组:
var myNumbers = [42];
Run Code Online (Sandbox Code Playgroud)
但这会创建一个长度为42的数组:
var myNumbers = new Array(42);
Run Code Online (Sandbox Code Playgroud)
对,他们是.但请注意,当您只将一个数字参数传递给Array构造函数时,您将指定length数组的初始值,而不是第一个项的值.因此:
var myCars1 = new Array(10);
Run Code Online (Sandbox Code Playgroud)
...的行为与以下数组文字不同:
var myCars2 = [10];
Run Code Online (Sandbox Code Playgroud)
......请注意以下事项:
console.log(myCars1[0]); // returns undefined
console.log(myCars1.length); // returns 10
console.log(myCars2[0]); // returns 10
console.log(myCars2.length); // returns 1
Run Code Online (Sandbox Code Playgroud)
这就是为什么经常建议坚持使用数组文字表示法的原因之一:var x = [].