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.
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744204271a4563024.html
评论列表(0条)