zoukankan      html  css  js  c++  java
  • 26.类数组转换为数组

    类数组对象有三种:

      1.arguments

      2.元素集合

      3.节点集合

    var oLis = document.getElementByTagName("div");

    console.dir(oLis); // ->HTMLCollection元素集合类的一个实例 ->它也是一个类数组集合

    var oLis = document.getElementByName("div");

    console.dir(oLis); // ->NodeList 节点集合类的一个实例 ->它也是一个类数组集合

    类数组转换成数组:

      -》标准浏览器方法:

      var ary = [].slice.call(oLis)

      问题:在IE6-8浏览器中忙不支持借用数组的slice实现将元素集合的类数组转换为数组,报错(元素集合跟节点集合都不支持,但是arguments是支持的不存在任何兼容性问题)

      -》非标准方法;IE6-8

      for (var i = 0;i<oLis.length;i++) {

        ary[ary.length] = oLis[i]

      }

    补充知识点:

    1.浏览器的异常信息捕获:

      我们在JS中使用try,catch进行浏览器的异常信息捕获

      console.log(num) //  直接报错,在js中本行报错,下面的代码都不在执行了

      console.log("ok")

      1)如果用try,catch捕获了异常信息,不影响下面的代码继续执行。如果try里面的代码执行出错了,会默认的去执行catch中的代码

     try {
    
        console.log(num)
    
      } catch(e) {// 形参必须要写,一般起名为e
    
        console.log("报错了")
        console.log(e.message,111111) // 可以收集当前代码报错的原因
      }  
    
      console.log("ok")

      2)

        需求:有时候既想捕获到错误信息,又不想让下面的代码继续执行

      try {
    
        // js代码
      } catch (e) {
    
        // 如果代码报错执行catch中的代码
        // 手动抛出一条错误信息,终止代码执行
        throw new Error("当前网络繁忙,请稍后再试")
        new ReferenceError // ->引用错误信息
        new TypeError // ->类型错误
        new RangeError // ->范围错误
      } finally {     // 一般不用:不管try中的代码是否报错,都要执行finally中的代码   }

     完整的类数组,转化为数组的方法

    var utils = {
        // 实现将类数组转化为数组,利用try,catch检测兼容
        listToArray: function (likeAry) {
            var ary = [];
            try {
                ary = Array.prototype.slice.call(likeAry);
            } catch (e) {
                for (var i = 0;i<likeAry.length;i++) {
                    ary[ary.length] = likeAry[i]
                }
            }
            return ary;
        }
    }
  • 相关阅读:
    table首行固定
    JavaScript获取当前日期,昨天,今天日期以及任意天数间隔日期
    Struts2二级菜单联动
    Servlet和Struts2同时使用
    最近的感想
    java.lang.NoClassDefFoundError: javax/el/ELResolver 问题解决
    Event Loop、函数式编程、IO多路复用、事件驱动、响应式、
    Git 的使用(一)
    Linux 硬链接与软链接 目录结构
    并发、并行、同步、异步相关感念
  • 原文地址:https://www.cnblogs.com/z-dl/p/8961563.html
Copyright © 2011-2022 走看看