zoukankan      html  css  js  c++  java
  • ES 5 中 判断数组的方法

    源代码:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <div>1</div>
        <div>2</div>
        <div>3</div>
      <script type="text/javascript">
          // 获取类数组对象
          var obj = document.getElementsByTagName("div");
          // 定义数组
          var arr = [];   
      </script>
    </body> 

    方法一: 判断对象的类型(toString)

    console.log(Object.prototype.toString.call(obj) === "[object Array]");
    console.log(Object.prototype.toString.call(arr) === "[object Array]");

    方法二: 判断是否是实例化对象(instanceOf)

         instanceOf用于判断一个变量是否某个对象的实例。

       console.log(obj instanceof Array);
        console.log(arr instanceof Array);
     
        // 构造函数是Object的时候, 也是true
        console.log(arr instanceof Object);

    方法三: 判断构造函数是否是Array(constructor)

    console.log(obj.constructor === Array);
    console.log(arr.constructor === Array);
    console.log(arr.constructor === Object);    // false

    方法四: 数组的静态(isArray)

    console.log(Array.isArray(obj));
    console.log(Array.isArray(arr));

    注意:

    console.log(arr instanceof Object);

    可以确定数组是一个对象,但不能判断是否是数组。

    obj的的__proto__ 指向HTMLCollection最终指向Object。

    HTMLCollection。 他本身是一个对象,一个类数组对象。而并非是一个数组。

    直接对HTMLCollection是不能采用对dom元素的操作方式来操作的。比如htmlCL.style.color=”red”;是无效的。原因很简单,htmlCL并不是dom对象,她不具备dom所拥有的属性;

    当然我们可以使用数组式选择方式来选择其中的一个元素。比如
    htmCl[0];返回的则是对象里面的第一个元素,则可以对他进行操作
    如:htmCl[0].style.color=”red”;

    //   欲知后续如何 且听我下回补充。   

      

  • 相关阅读:
    CentOS 软件安装(yum 和 rpm)
    Ubuntu下的 PPPoE 拨号上网方法
    Vim 去除因为 Unix 和 Windows 换行符不同带来的 ^M 问题
    Python 在 Windows 下安装第三方包,报 Python 未注册的问题解决
    scipy 安装错误及解决
    Python 字典一个易犯的错误
    Linux查看系统信息
    系统更新报错--NO_PUBKEY
    关于直播的技术整理2
    关于直播的技术整理
  • 原文地址:https://www.cnblogs.com/serdy/p/10180300.html
Copyright © 2011-2022 走看看