admin管理员组文章数量:1400533
What does new Array(number)
mean, and what does new Array()
mean? For example:
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";
What does new Array(number)
mean, and what does new Array()
mean? For example:
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";
Share
Improve this question
edited Jul 27, 2012 at 15:03
Matt Fenwick
49.1k24 gold badges129 silver badges198 bronze badges
asked Dec 29, 2010 at 14:42
dramaseadramasea
3,50217 gold badges53 silver badges77 bronze badges
1
- 1 MDC is a good place to look: developer.mozilla/en/JavaScript/Reference/Global_Objects/… – epascarello Commented Dec 29, 2010 at 15:24
4 Answers
Reset to default 4In days of yore, some browsers would pre-allocate some number of empty (undefined
) array entries. In my opinion, it's pointless and in fact a bad habit even though that doesn't happen now. It's just a weird API and weird things are bug launchers.
Your code could be much prettier, for example:
var weekday = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
My reason for thinking that new Array(n)
is a bad idea is that the setup of the Array constructor has two modes:
new Array(22);
means to create an Array instance with 22 null entries, but
new Array(22, 23, 24);
means to create an Array instance with 3 entries. It's confusing and weird, and really shouldn't have been done that way.
The var weekday = new Array( 7 ); is declaring an array with 7 items in it, as shown by the following lines. The array stores values at each index( number ) and you access the values via variable[#]
You do not need it in javascript but many other languages such as Java require an explicit value.
Pointy's answer sums it up perfectly. Just to add another alternative, you could do it like this (if you were to do something in a loop rather than hardcoding it for example):
var weekday = [];
weekday.push("Sunday");
weekday.push("Monday");
weekday.push("Tuesday");
weekday.push("Wednesday");
weekday.push("Thursday");
weekday.push("Friday");
weekday.push("Saturday");
var sevenElementsArray = new Array(7);
var emtpryArray1 = new Array();
var emtpryArray2 = [];
the number - constructor in an array works as capacity, but cause arrays - are dynamic you may assign:
alert(sevenElementsArray.length); //shows 7
sevenElementsArray[20] = "it's OK";
alert(sevenElementsArray.length); //shows 20
alert(sevenElementsArray[15]); //shows undefined;
also in JavaScript you may truncating and enlarging an array by updating the length property.
I wish to remend you to read JavaScript: The Definitive Guide, 5th Edition, the chapter 7: "Objects and Arrays". You need to understand difference between object, array, array-like object.
本文标签: javascriptWhat does new Array(number) mean when creating a new arrayStack Overflow
版权声明:本文标题:javascript - What does `new Array(number)` mean when creating a new array? - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744204270a2595109.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论