• JavaScript--数组与伪数组(特殊对象)的区别


    一.数组与伪数组的区别例子:

    从原型链上解析:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Title</title>
     6     <script>
     7         window.onload = function{
     8             // 伪数组 --> __proto__:HTMLCollection
     9             var btns = document.getElementsByTagName('button');
    10             console.log(btns);
    11             console.log(typeof btns); // object
    12             console.log(btns instanceof Array); // false
    13 //            btns.push("123"); 会报错,他不是真的数组,他的原型对象上没有数组的方法
    14 
    15 
    16             // 数组-->  __proto__:Array()
    17             var arr = [1,2,3,4];
    18             console.log(arr);
    19             console.log(typeof arr); //object
    20             console.log(arr instanceof Array); // true
    21         }
    22     </script>
    23 </head>
    24 <body>
    25 <button>按钮</button>
    26 
    27 </body>
    28 </html>

    二.数组与伪数组(特殊对象)中,伪数组仿数组的过程

     1  <script>
     2         // 真数组
     3         /*var arr = [];
     4         arr[0] = "数据1";
     5         arr[1] = "数据2";
     6         console.log(arr);*/
     7 
     8 
     9         /* 伪数组其实是JS为了方便管理我们的DOM节点创建出来的特殊对象集合
    10         *
    11         *伪数组相当于对象的属性用了数组表示,JS内部还给它自动添加了length属性
    12         * ,但是它本质还是伪数组(特殊对象),它身上没有数组方法*/
    13         var obj = {};
    14 //        obj["key"] = "对象数据1";
    15         obj[0] = "对象数据1";
    16         obj[1] = "对象数据2";
    17         obj[2] = "对象数据3";
    18         obj['length'] = 3;
    19         console.log(obj);
    20         console.log("obj[0] ------"+obj[0]);
    21     </script>
  • 相关阅读:
    基于MFC的Media Player播放器的制作(1---播放器界面的布局)
    Codeforces 1182
    Codeforces 1169
    Codeforces 1167
    Codeforces 1166
    Codeforces 1148
    *Codeforces 1162
    Codeforces 1159
    点分治
    高斯消元*
  • 原文地址:https://www.cnblogs.com/mrszhou/p/7754968.html
Copyright © 2020-2023  润新知