• 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”;

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

      

  • 相关阅读:
    linux centos7 安装mysql-5.7.17教程(图解)
    java中equals,hashcode和==的区别
    常用正则表达式大全
    MyEclipse中的重命名
    MyEclipse中查询
    Java中的代理模式
    Java中的枚举
    Java中的异常-Throwable-Error-Exception-RuntimeExcetpion-throw-throws-try catch
    eclipse将编辑栏一分为二
    图的存储,搜索,遍历,广度优先算法和深度优先算法,最小生成树-Java实现
  • 原文地址:https://www.cnblogs.com/wehome/p/10180300.html
Copyright © 2020-2023  润新知