数组常见基础知识

1. 数组是一种特殊的对象,键名是默认的, 1,2,3,所以定义数组的时候会省略。

2. 对象的键名一律为字符串,数组的键名会被自动转换为字符串。

3. 对象可以用点方法读取,也可以用方括号的方法读取,但是数组只能用方括号的方法读取。

4. keys是一种类数组对象,只有数组的length一种属性,还是自己定义的。类数组对象常见的有:arguments 对象,DOM元素集,字符串等

var keys = {
  0: ['1', '2', '3'],
  1: ['4', '5', '6'],
  length: 2  
}

slice方法可以将类数组对象转换成数组

var arr = Array.prototype.slice.call('arrayLike')

5. 遍历数组的方法有两种,for循环和forEach方法,还有while循环(想想逆向遍历)

forEach方法:

Array.prototype.forEach.call( arguments, function( elem, i ){
    console.log( i + '.' + elem );
} )

字符串是一种类数组对象,可以用这种方法遍历。

6. in运算符

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

键名是数值的数组,会被转换成字符串。

for in 不仅会遍历数组的数字键值,也会遍历数组的非数字键值,所以不建议用这种方法遍历数组(在这里要想到length,length的定义是数组中最大数字键值加1)。

7. 数组的空位打出来的是undefined,不影响length属性,使用delete方法删除数组的元素会出现这种空位的现象,所以使用length方法遍历数组的时候要小心。空位和undefined是不一样的,如果是空位,使用forEach方法,for in结构以及Object.keys方法进行遍历就会跳过空位。如果是undefined,遍历不会跳过。

posted @ 2018-01-26 10:08  程澄  阅读(357)  评论(0编辑  收藏  举报