用JavaScript声明数组的方法是什么

What is the way of declaring an array in JavaScript?

本文关键字:方法 是什么 数组 JavaScript 声明      更新时间:2023-09-26

我只是在学习JavaScript,似乎有很多方法可以声明数组。

  1. var myArray = new Array()
  2. var myArray = new Array(3)
  3. var myArray = ["apples", "bananas", "oranges"]
  4. var myArray = [3]

它们的区别是什么,首选的方式是什么?

根据这个网站,以下两条线非常不同:

var badArray = new Array(10); // creates an empty Array that's sized for 10 elements
var goodArray= [10];          // creates an Array with 10 as the first element

正如你所看到的,这两条线做了两件非常不同的事情。如果你如果想要添加多个项目,则badArray将正确初始化,因为Javascript将足够智能知道您正在初始化数组,而不是说明有多少您想要添加的元素。

作者想说的是Array(10)创建了一个正好有10个元素的数组,而[10]创建了一一个未定义大小的数组,第0个元素是10吗?或者这意味着什么?

在第一个示例中,您正在制作一个空白数组,与var x = []相同。第二个例子制作了一个大小为3的数组(所有元素为undefined)。第三个和第四个例子是相同的,它们都用这些元素组成数组。

使用new Array()时要小心。

var x = new Array(10); // array of size 10, all elements undefined
var y = new Array(10, 5); // array of size 2: [10, 5]

首选方式是使用[]语法。

var x = []; // array of size 0
var y = [10] // array of size 1: [1]
var z = []; // array of size 0
z[2] = 12;  // z is now size 3: [undefined, undefined, 12]

首选的方法是始终使用带有方括号的文本语法;与Array不同,它的行为对于任何数量的项目都是可预测的。更重要的是,Array不是一个关键词,尽管这不是一个现实的情况,但有人可以很容易地覆盖它:

function Array() { return []; }
alert(Array(1, 2, 3)); // An empty alert box

然而,更大的问题是一致性问题。重构代码的人可能会遇到这个函数:

function fetchValue(n) {
    var arr = new Array(1, 2, 3);
    return arr[n];
}

事实证明,只需要fetchValue(0),所以程序员放弃其他元素并中断代码,因为它现在返回undefined:

var arr = new Array(1);

声明:

var myArr = ["apples", "oranges", "bananas"];

使用它:

document.write("In my shopping basket I have " + myArr[0] + ", " + myArr[1] + ", and " + myArr[2]);

有很多方法可以创建数组。

声明和初始化数组的传统方式如下:

var a = new Array(5); // declare an array "a", of size 5
a = [0, 0, 0, 0, 0];  // initialize each of the array's elements to 0

或者。。。

// declare and initialize an array in a single statement
var a = new Array(0, 0, 0, 0, 0); 

如果创建的数组的主要特征是它的长度,而不是每个索引的值,那么将数组定义为var a=Array(length);是合适的。

例如

String.prototype.repeat= function(n){
    n= n || 1;
    return Array(n+1).join(this);
}

您可以像这样声明

const [alice, bob] = [1, 2]
console.log(alice) // 1
console.log(bob) // 2