new Array(number)
是什么意思,new Array()
是什么意思?例如:
var weekday=new Array(7);
weekday[0]="Sunday";
weekday[1]="Monday";
weekday[2]="Tuesday";
weekday[3]="Wednesday";
weekday[4]="Thursday";
weekday[5]="Friday";
weekday[6]="Saturday";
答案 0 :(得分:4)
在以前的日子里,一些浏览器会预先分配一些空的(undefined
)数组条目。在我看来,这是毫无意义的,实际上是一种坏习惯,即使现在还没有发生。它只是一个奇怪的API,奇怪的是bug发射器。
您的代码可能更漂亮,例如:
var weekday = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
我认为new Array(n)
是个坏主意的原因是Array构造函数的设置有两种模式:
new Array(22);
表示创建一个包含22个空条目的Array实例,但
new Array(22, 23, 24);
表示使用 3 条目创建数组实例。它令人困惑和奇怪,真的不应该这样做。
答案 1 :(得分:1)
在 var weekday = new Array(7); 正在声明一个包含7个项目的数组,如下面的行所示。数组存储每个索引(数字)的值,您可以通过变量[#]
访问这些值您在javascript中不需要它,但许多其他语言(如Java)需要显式值。
答案 2 :(得分:0)
Pointy的答案总结得很好。只是为了添加另一种替代方法,你可以这样做(如果你在循环中做某事而不是硬编码):
var weekday = [];
weekday.push("Sunday");
weekday.push("Monday");
weekday.push("Tuesday");
weekday.push("Wednesday");
weekday.push("Thursday");
weekday.push("Friday");
weekday.push("Saturday");
答案 3 :(得分:0)
var sevenElementsArray = new Array(7);
var emtpryArray1 = new Array();
var emtpryArray2 = [];
数组 - 数组中的构造函数作为容量,但导致数组 - 是动态的,你可以指定:
alert(sevenElementsArray.length); //shows 7
sevenElementsArray[20] = "it's OK";
alert(sevenElementsArray.length); //shows 20
alert(sevenElementsArray[15]); //shows undefined;
同样在JavaScript中,您可以通过更新length属性来截断和放大数组。
我建议您阅读JavaScript:The Definitive Guide,第5版,第7章:“对象和数组”。您需要了解对象,数组,类似数组的对象之间的区别。