由于我了解 JavaScript 的基础知识,因此我能够创建数组,但我想知道我们可能在数组的括号中包含什么,例如 test=new Array("parameter?"); 所以我的意思是包含什么作为该javascript数组的参数
4 回答
数组构造函数被重载,你得到的结果取决于你传递的参数数量和它们的数据类型:
多个参数(任何类型):
var arr = new Array(1,2,3,4);
创建一个包含传递给构造函数的值的新数组。
一种说法...
...类型编号:
var arr = new Array(4);
创建一个空数组并将其长度设置为作为参数传递的数字。该数组似乎有 4 个元素(因为它的长度为 4),但它不包含任何元素(例如
arr[0]
will beundefined
)。...任何其他类型:
var arr = new Array('foo');
创建一个包含一个元素的数组,将参数传递给构造函数(与传递多个参数相同)。
由于Array
构造函数的这种模糊性,您应该避免它并改用数组文字:
var arr = [1,2,3,4];
也就是说,要学习基础知识,请阅读MDN JavaScript 指南,尤其是关于数组的内容。
首先,如果你发现自己在写作new Array
,可能有更好的方法来做。但首先我将解释Array
构造函数,然后讨论更好的方法。
构造Array
函数有两种形式:一种接受零个或一个参数(如果一个参数是数字),另一种是接受多个参数(如果参数不是数字,则只有一个参数)。切勿使用第二种形式,并避免使用第一种形式。
第一种形式:
var a = new Array(5);
...创建一个数组,其中 alength
没有5
条目(JavaScript 数组是“稀疏的”,因为它们根本不是真正的数组——更多内容见下文)。如果您根本不提供任何参数,则length
is 0
。
第二种形式:
var a = new Array(5, 6);
...创建一个包含与参数一样多的条目的数组(因此,在这种情况下为两个),并使用参数来设置这些条目的值。
请注意,参数的数量和类型都很重要:
var a = new Array(5); // Creates an array with length = 5 with no entries
var b = new Array("5"); // Creates an array with length = 1 and entry [0] = "5"
使用数组文字几乎总是要好得多。
上面的第一种形式,用数组文字代替:
var a = [];
a.length = 5;
上面的第二种形式,用数组文字代替:
var a = [5, 6];
使用数组文字“更好”(在我看来)有几个原因,其中一些比其他的更主观:
它更清晰,并且没有
Array
构造函数所具有的歧义。例如,这是做什么的?var a = new Array(foo);
答:这取决于(取决于
foo
里面有什么,一个数字或其他东西)。这只是不好tm。有人
Array
用其他东西覆盖符号(他们可以这样做)并不容易。它更加简洁和富有表现力(这可能是最主观的原因)。
更多阅读:
Array
s上的 ECMAScript (JavaScript) 规范- 数组的神话(在我的博客中),它解释了 JavaScript 数组如何不是数组
你正处于学习曲线中。看这里。你可以在那里写数组项。
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array(需要编辑审查)