美文网首页
javascript 有哪些是伪数组(类数组)

javascript 有哪些是伪数组(类数组)

作者: _一九九一_ | 来源:发表于2019-12-23 16:10 被阅读0次

    伪数组定义

    • 拥有length属性,其它属性(索引)为非负整数(对象中的索引会被当做字符串来处理,这里你可以当做是个非负整数串来理解)
    • 不具有数组所具有的方法
    • 伪数组是一个 Object, 而真实的数组是一个 Array

    伪数组存在的意义

    • 可以让普通的对象也能正常使用数组的很多算法

    常见的伪数组

    • function 参数 arguments
    • DOM 对象列表,比如通过 document.getElementsByTags 得到的列表
    • jQuery 对象,比如 $("div")

    如何判断真数组、伪数组?

    以下是判断真数组的方法:

    const a = [];
    const b = {};
    console.log(a instanceof Array);//true
    console.log(a instanceof Object);//true 
    console.log(b instanceof Array);//false
    
    const a = ['Hello','world'];
    const b = {0:'Hello',1:'world'};
    const c = 'Hello world';
    Object.prototype.toString.call(a);//"[object Array]"
    Object.prototype.toString.call(b);//"[object Object]"
    Object.prototype.toString.call(c);//"[object String]"
    

    伪数组如何转换成真数组?

    Array.prototype.slice.call(arguments)
    // 或
    [].slice.call(arguments) 
    

    相关文章

      网友评论

          本文标题:javascript 有哪些是伪数组(类数组)

          本文链接:https://www.haomeiwen.com/subject/fdoznctx.html