JS 里的数据类型(二)

2019-01-21  本文已影响0人  松鼠煮鳜鱼

数组 (array)

是按次序排列的一组值。
任何类型的数据,都可以放入数组。

数组的本质

-本质上,数组属于一种特殊的对象。typeof运算符会返回数组的类型是object。
-由于数组成员的键名是固定的(默认总是0、1、2...),因此数组不用为每个元素指定键名,而对象的每个成员都必须指定键名。JavaScript 语言规定,对象的键名一律为字符串,所以,数组的键名其实也是字符串。之所以可以用数值读取,是因为非字符串的键名会被转为字符串。
-对象有两种读取成员的方法:点结构(object.key)和方括号结构(object[key])。但是,对于数值的键名,不能使用点结构。

length 属性

只要是数组,就一定有length属性。
清空数组的一个有效方法,就是将length属性设为0。

in 运算符

检查某个键名是否存在的运算符in,适用于对象,也适用于数组。

for...in 循环和数组的遍历

for...in循环不仅可以遍历对象,也可以遍历数组,毕竟数组只是一种特殊对象。但是,for...in不仅会遍历数组所有的数字键,还会遍历非数字键。

数组的空位

var a = [1, , 1];
a.length // 3

类似数组的对象

如果一个对象的所有键名都是正整数或零,并且有length属性,那么这个对象就很像数组,语法上称为“类似数组的对象”(array-like object)。
但是有一个问题,这种length属性不是动态值,不会随着成员的变化而变化。
典型的“类似数组的对象”是函数的arguments对象,以及大多数 DOM 元素集,还有字符串。

上一篇 下一篇

猜你喜欢

热点阅读