创建新数组时,“new Array(number)”是什么意思?

发布于 2024-10-09 06:59:39 字数 285 浏览 0 评论 0原文

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";

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";

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

你如我软肋 2024-10-16 06:59:39

过去,某些浏览器会预先分配一些空(未定义)数组条目。在我看来,这是毫无意义的,实际上是一个坏习惯,尽管现在这种情况并没有发生。这只是一个奇怪的 API,而奇怪的东西就是 bug 启动器。

你的代码可以更漂亮,例如:

var weekday = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];

我认为 new Array(n) 是一个坏主意的原因是 Array 构造函数的设置有两种模式:

new Array(22);

意味着创建一个 Array 实例22 个空条目,但

new Array(22, 23, 24);

意味着创建一个具有 3 条目的 Array 实例。这是令人困惑和奇怪的,而且真的不应该这样做。

In 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.

迷雾森÷林ヴ 2024-10-16 06:59:39


var 工作日 = 新数组( 7 );
正在声明一个包含 7 个项目的数组,如以下几行所示。该数组在每个索引( number )处存储值,并且您可以通过变量[#] 访问这些值。

在 javascript 中不需要它,但许多其他语言(例如 Java)需要显式值。

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.

握住我的手 2024-10-16 06:59:39

Pointy 的回答完美地总结了这一点。只是为了添加另一种选择,您可以这样做(例如,如果您要在循环中执行某些操作而不是对其进行硬编码):

var weekday = [];
weekday.push("Sunday");
weekday.push("Monday");
weekday.push("Tuesday");
weekday.push("Wednesday");
weekday.push("Thursday");
weekday.push("Friday");
weekday.push("Saturday");

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");
一杆小烟枪 2024-10-16 06:59:39
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:权威指南,第五版,第 7 章:“对象和数组”。您需要了解对象、数组、类数组对象之间的区别。

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 recommend 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文