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

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

      

  • 相关阅读:
    JDK源码分析之hashmap就这么简单理解
    JVM笔记11-类加载器和OSGI
    JVM笔记10-性能优化之高级特性
    Java并发编程笔记之ThreadLocal内存泄漏探究
    Java并发编程笔记之FutureTask源码分析
    Java并发编程笔记之SimpleDateFormat源码分析
    Java并发编程笔记之Timer源码分析
    Java并发编程笔记之Semaphore信号量源码分析
    Java并发编程笔记之CyclicBarrier源码分析
    Java并发编程笔记之 CountDownLatch闭锁的源码分析
  • 原文地址:https://www.cnblogs.com/serdy/p/10180300.html
Copyright © 2011-2022 走看看