• js学习总结----类数组转化为数组及浏览器异常信息捕获


    一、类数组转换

    类数组都有哪些,除了arguments还有下面两个HTMLCollection和NodeList

         var oLis = document.getElementsByTagName('div');
            console.dir(oLis)//HTMLCollection元素集合类的一个实例 它也是一个类数组集合
            oLis = document.getElementsByName('张三')
            console.dir(oLis);//NodeList节点集合 它也是一个类数组集合

    然而在IE6-8浏览器中,不支持借助数组的slice方法实现将元素集合/节点集合的类数组转换为数组。会报错

    但是对于arguments借用数组的方法是不存在任何兼容性问题的

    标准浏览器可以通过如下方式转换成数组

    var ary = Array.prototype.slice.call(oLis);

    非标准浏览器

    for(var i = 0;i<oLis.length;i++){
                ary[ary.length] = oLis[i]
            }

    二、异常捕获

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

    console.log(num)//报错  下面的代码不在执行了
    console.log("ok")

      使用捕获的代码  

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

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

      完整的try/catch代码  

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

      利用try/catch解决类数组转换成数组兼容问题

         var utils = {
                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                
                }
            }
  • 相关阅读:
    文章参考
    选择标识符(identifier)
    linux常见命令2
    Django框架之MVT(1)
    Tornado入门二
    2.Flask-jinjia2模板
    JQuery扩展和事件
    JQuery文档操作
    Jquery学习
    Jquery属性操作(入门二)
  • 原文地址:https://www.cnblogs.com/diasa-fly/p/7094463.html
Copyright © 2020-2023  润新知