2.5JavaScript引用类型之数组(Array)

数组是一种数据结构。

  • 数组的索引是隐式的整数类型。
  • 数组的索引是有序的,包含 length 个元素的数组从 0 索引到 length-1
  • 数组的元素可以是任意类型,且不必都属于同一个类型,可以随时改变类型。
  • 数组的元素的个数(长度)可以动态改变,可以向数组添加、更改、删除元素。
  • 数组的元素允许重复的元素。

1.索引数组

注意:最后一个元素后面允许有逗号 ,,这样要添加一个新元素时很方便。

//字面量创建方式

//创建一个空数组
let arr = [];
//创建一个数组长度为N的数组(直接填入元素)       
let arr = [元素1, 元素2, ..., 元素N];
//Array()函数创建方式(加与不加new都一样)

//创建一个空数组
let arr = [new] Array();
//创建一个数组长度为20的数组
let arr = [new] Array(20);
//创建一个数组长度为N的数组(直接填入元素)       
let arr = [new] Array(元素1, 元素2, ..., 元素N);

2.稀疏(Sparse)数组

数组可以包含“空槽(empty slot)”,我们可以将带空槽的数组叫做稀疏(Sparse)数组,反之,不带空槽的数组叫做紧凑(Dense)数组。

稀疏数组的空槽与填充值为 undefined 的槽不同。在某些方法中,空槽表现得好像填充值为 undefined 的槽,但在其它方法中(最明显的是数组迭代方法),会跳过空槽,但不会跳过填充值为 undefined 的槽。

//空槽在前面
let arr = [ , 2, 3];
console.log(arr);  // Array(3) [ <1 empty slot>, 2, 3 ]

//空槽在中间
let arr = [1, , 3];
console.log(arr);  // Array(3) [ 1, <1 empty slot>, 3 ]

//空槽在末尾
//注意:末尾的逗号是为了添加一个新元素时方便,不是空槽。
let arr = [1, 2,  ];
console.log(arr);  // Array(2) [ 1, 2 ]

3.多维数组

数组是可以嵌套的, 这就意味着一个数组可以作为一个元素被包含在另外一个数组里面。利用 JavaScript 数组的这个特性, 可以创建多维数组。

//字面量创建方式
let arr = [ [1, 2], [3, 4], [5, 6], [7, 8] ];
//Array()函数创建方式
let arr = new Array([1, 2], [3, 4], [5, 6], [7, 8]);

4.访问数组中的元素

可以使用变量名后跟方括号 [] 包含索引来访问数组中索引对应的元素。

另外,还可以使用 at() 实例方法访问数组中的元素。

区别浏览器最低版本要求是否支持负数索引索引超出范围
[]Chrome 1、Firefox 1、Safari 1。不支持返回 undefined
at()Chrome 92、Firefox 90、Safari 15.4。支持返回 undefined
//[]
//正数索引从左往右从0开始,不支持负数索引。
//访问
let a = arr[索引];
let a = arr[索引1][索引2];

//添加或更改
arr[索引] = 值;
arr[索引1][索引2] = 值;

//删除
//将被删了的元素的值赋为undefined,数组长度不变。
delete arr[索引];
delete arr[索引1][索引2];
//at()
//正数索引从左往右从0开始,负数索引从右往左从-1开始。
//访问
let a = arr.at(索引);

//添加或更改
arr.at(索引) = 值;

//删除
//将被删了的元素的值赋为undefined,数组长度不变。
delete arr.at(索引);

5.数组长度

arr.length

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/javascript/javascriptlang/4736.html

(0)
huoxiaoqiang的头像huoxiaoqiang
上一篇 2020年9月4日
下一篇 2020年9月6日

相关推荐

  • 2.4JavaScript引用类型之类(Class)

    类是一种“特殊的函数”。 就像函数声明定义方式和函数表达式定义方式一样,类的定义方式也有两种:类声明定义方式和类表达式定义方式。 1.类声明 注意:在同一个作用域,类声明不可以重复定义,否则会报错。 2.类表达式 注意:在同一个作用域,类表达式不可以重复定义,否则会报错。 注意:命名类表达式的右侧依然是类表达式,不是类…

  • 1.8JavaScript语言的语句(Statement)

    1.空(Empty)语句 空语句只使用一个分号 ; 表示,表示不提供任何语句。与空语句相反的是块语句。 比如,以下的例子将 for 循环语句后的 {} 替换为 ;。 2.块(Block)语句 块(Block)语句又被称为代码块(Code Block)语句。 块语句由一对花括号 {} 组成,花括号内部包括零条或多条语句。…

  • 2.2JavaScript原始类型之字符串(String)

    1.单引号和双引号字符串字面量 JavaScript 语言的单引号和双引号字符串字面量语法上没有区别,所以以下一并讲解。 单引号和双引号字符串字面量支持所有转义序列。 单引号和双引号字符串字面量不支持字符串插值。 单引号和双引号字符串字面量支持在每行末尾添加一个转义字符反斜杠 \ 转义隐式的换行符从而跨多行编写一行代码…

发表回复

登录后才能评论