这是我参与更文挑战的第21天,活动详情查看: 更文挑战
在之前说基础类型和引用类型的时候,我们就说了,Array也属于Object的一种,当时没有细说,,这一节,我们就来详细了解一下数组。
什么是数组?
在js中,数组是一组有序的数据,就像整齐排列的一对小朋友一样,不同的是,它的每一项都可以是任意的类型,比如字符、数字、甚至也可以是一个数组。
['hello', 5, { name: 'zhangsan' }]
复制代码
怎么去创建一个数组
new Array
第一种创建数组的方法是使用构造函数。比如
let ary = new Array()
console.log(ary) // []
复制代码
如果我们在创建的时候想要指定数组有多少项,可以直接给构造函数传入一个数值,就可以创建一个固定长度的数组,只不过它的每一项都是空的,例如
let ary = new Array(3)
console.log(ary) // [empty × 3]
复制代码
如果我们在创建的时候,就知道每一项是什么,也可以直接将这些数据传给构造函数,例如
let ary = new Array('你', '好', 2021)
console.log(ary) // ["你", "好", 2021]
复制代码
但需要注意的是,如我们上面的例子,当我们仅给构造函数传入一个值并且这个值是数字的时候,它会返回一个长度为我们传入数值的函数,而不是创建一个包涵该数字的数组。
在使用构造函数创建数组的时候,我们也可以省略new
关键字
let ary = Array('a', 'b')
console.log(ary) // ["a", "b"]
复制代码
Array构造函数还有两个es6新增的用于创建数组的方法:from()
和of()
from()
方法可以把字符串转为数组
let ary = Array.from('hello')
console.log(ary) // ["h", "e", "l", "l", "o"]
复制代码
of()
方法则和直接使用构造函数没什么区别,可以把传进去的参数变为一个数组
let ary = Array.of('你', '好', 2021)
console.log(ary) // (3) ["你", "好", 2021]
复制代码
字面量方式创建
相比于用构造函数方式创建数组,字面量方式创建数组更方便,也更常见,我们只需要把一个想要的数组直接赋值给一个变量即可。
let ary = [1, 2, 3]
console.log(ary) // [1, 2, 3]
复制代码
数组空位
js允许我们在创建数组时给其中的任意项赋予空值,比如我们用字面量方式创建数组是,可以不用填任何值,仅输入一个逗号,就可以代表一个空值
let ary = [,,,]
ary.length // 3
复制代码
我们也可以仅在某些位置上留下空值
let ary = [1, 2, , , 3]
console.log(ary) // [1, 2, empty × 2, 3]
复制代码
注意:由于行为不一致和存在性能隐患,因此实践中要 避免使用数组空位。如果确实需要空位,则可以显式地用 undefined值代替。
今天就先到这了,祝大家有个好梦,晚安。
对了,我参加了年中征文活动,希望大家可以点个赞,评论一下