数组是对象
数组是一种特殊类型的对象。
在 JavaScript 中对数组使用 typeof 运算符会返回 “object”。
var cars = ["Saab", "Volvo", "BMW"];
console.log(typeof cars); // object
使用数字来访问元素
数组使用数字来访问其元素。
var cars = ["Saab", "Volvo", "BMW"];
console.log(cars[0]); // Saab
在本例中,cars[0] 返回 Saab。
使用名称来访问其成员
对象使用名称来访问其成员。
var person = {
firstName: "Marcus",
lastName: "Rashford",
age: 23
}
console.log(person.firstName); // Marcus
本例中,person.firstName 返回 Marcus。
数组元素可以是元素
JavaScript 变量可以是对象。
数组是特殊的对象。
正因为如此,可以在相同数组中存放不同类型的变量。
可以在数组中保存对象,可以在数组中保存函数,甚至可以在数组中保存数组。
数组属性和方法
JavaScript 数组的真实力量隐藏在数组的属性和方法中
length 属性
JavaScript 的 Array 可以包含任意数据类型,并通过索引来访问每个元素。
要取得 Array 的长度,直接访问 length 属性:
var arr = [1, 2, 3.14, 'Manchester', null, true];
console.log(arr.length); // 6
直接给 Array 的 length 赋一个新的值会导致 Array 大小的变化:
var arr = [1, 2, 3];
console.log(arr.length); // 3
arr.length = 6;
console.log(arr); // [ 1, 2, 3, <3 empty items> ]
arr.length = 2;
console.log(arr); // [ 1, 2 ]
关联数组
很多编程元素支持命名索引的数组。
具有命名索引的数组被称为关联数组(或散列)。
JavaScript 不支持命名索引的数组。
在 JavaScript 中,数组只能使用数字索引。
var person = [];
person[0] = "Marcus";
person[1] = "Rashford";
person[2] = 23;
var x = person.length;
console.log(x); // 3
var y = person[0];
console.log(y); // Marcus
假如使用命名索引,JavaScript 会把数组重定义为标准对象。
之后,所有数组的方法和属性将产生非正确结果。
var person = [];
person["firstName"] = "Marcus";
person["lastName"] = "Rashford";
person["age"] = 23;
var x = person.length;
console.log(x); // 0
var y = person[0];
console.log(y); // undefined
数组和对象的区别
在 JavaScript 中,数组使用数字索引。
在 JavaScript 中,对象使用命名索引。
数组是特殊类型的对象,具有数字索引。
本文由博客群发一文多发等运营工具平台 OpenWrite 发布