0

由于我了解 JavaScript 的基础知识,因此我能够创建数组,但我想知道我们可能在数组的括号中包含什么,例如 test=new Array("parameter?"); 所以我的意思是包含什么作为该javascript数组的参数

4

4 回答 4

3

数组构造函数被重载,你得到的结果取决于你传递的参数数量和它们的数据类型:

  • 多个参数(任何类型):

    var arr = new Array(1,2,3,4);
    

    创建一个包含传递给构造函数的值的新数组。

  • 一种说法...

    • ...类型编号

      var arr = new Array(4);
      

      创建一个数组并将其长度设置为作为参数传递的数字。该数组似乎有 4 个元素(因为它的长度为 4),但它不包含任何元素(例如arr[0]will be undefined)。

    • ...任何其他类型:

      var arr = new Array('foo');
      

      创建一个包含一个元素的数组,将参数传递给构造函数(与传递多个参数相同)。


由于Array构造函数的这种模糊性,您应该避免它并改用数组文字:

var arr = [1,2,3,4];

也就是说,要学习基础知识,请阅读MDN JavaScript 指南,尤其是关于数组的内容。

于 2012-10-13T08:23:34.457 回答
2

首先,如果你发现自己在写作new Array,可能有更好的方法来做。但首先我将解释Array构造函数,然后讨论更好的方法。

构造Array函数有两种形式:一种接受零个或一个参数(如果一个参数是数字),另一种是接受多个参数(如果参数不是数字,则只有一个参数)。切勿使用第二种形式,并避免使用第一种形式。

第一种形式:

var a = new Array(5);

...创建一个数组,其中 alength没有5条目(JavaScript 数组是“稀疏的”,因为它们根本不是真正的数组——更多内容见下文)。如果您根本不提供任何参数,则lengthis 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];

使用数组文字“更好”(在我看来)有几个原因,其中一些比其他的更主观:

  1. 它更清晰,并且没有Array构造函数所具有的歧义。例如,这是做什么的?

    var a = new Array(foo);
    

    答:这取决于(取决于foo里面有什么,一个数字或其他东西)。这只是不好tm

  2. 有人Array用其他东西覆盖符号(他们可以这样做)并不容易。

  3. 它更加简洁和富有表现力(这可能是最主观的原因)。

更多阅读:

于 2012-10-13T08:23:16.577 回答
0

你正处于学习曲线中。看这里。你可以在那里写数组项。

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array(需要编辑审查)

于 2012-10-13T08:17:13.047 回答
0

语法参考

[元素0,元素1,...,元素N]
新数组(元素0,元素1,...,元素
N)新数组(数组长度)

MDN 教程

于 2012-10-13T08:20:40.460 回答