es5数据类型(数组篇)

96 阅读1分钟

定义

数组是按次排序的一组值。 本质上,数组是一种特殊的对象,typeof会返回object,因为JavaScript规定,对象的键名一律为字符串,之所以数组可以用数值读取,是因为非字符串的键名会被转换成字符串(一个值总是先转换成字符串再作为键名进行赋值)。
length属性是可写的(为最大数值键+1),如果人为设置一个小于当前成员数的值,该数组的成员数量会自动减少到length设置的值。length加大时,多余的则是空位。

in运算符

in适用于对象所以也适用于数组,如果in的键是空位则会返回false。for in可以遍历数组,但是会遍历出非数字键,所以不推荐用此来遍历数组。

数组的空位

数组的空位是可以读取的,隐式返回undefined。delete数组元素会产生空位,不影响数组的length。空位与某个位置是undefined是不一样的,foreach、for in 、object.keys会跳过空位元素不操作(如果显示undefined就不会跳过操作)。

类数组对象

键值全是数字且含有length属性的对象是类数组,具体arguments对象,dom元素集等。但是其中的length不会随着属性的增减而变化,而且它们也不具备array的各种方法。可以使用数组slice方法变成真数组或者call相应方法使其使用数组的方法。