• 数组常见基础知识


    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,遍历不会跳过。

  • 相关阅读:
    proxy
    Reflect
    五一假期总结
    寄生组合式继承
    promise A+ 第二遍
    promise A+ 规范 第三遍
    类型转化
    作用域和闭包
    手写 instanceof 第二遍
    vue eltree 单选实现
  • 原文地址:https://www.cnblogs.com/CCCLARITY/p/8358253.html
Copyright © 2020-2023  润新知