Javascript之類數組轉換爲數組

兼容問題:在IE6~8中,不支持借用數組的slice實現將元素集合類數組對象轉換爲數組的方法,一樣,節點集合也是不支持的,可是arguments則沒有關於瀏覽器的兼容問題。數組

在標準瀏覽器中(谷歌,火狐,IE9及以上):瀏覽器

Array.prototype.slice.call(類數組)prototype

非標準瀏覽器下(IE6,7,8):code

使用循環的方式,對象

for(var i=0; i<類數組.length;i++){io

    ary[ary.length] = 類數組[i]console

}function

2:瀏覽器的異常信息捕獲:循環

在JS中使用try,catch進行瀏覽器的異常信息捕獲引用

try{

console.log(num) //正常進行的話會報錯,num is not defind,可是放在try,catch中會,若是try中的代碼出錯了,則執行catch中的代碼

}catch (e.message){ //形參必需要寫,通常叫作爲e

console,log(e.message)  // 📱當前代碼報錯的緣由

console.log('ok')

};

正常中項目中都會使用下面的格式

try{

    //<js code>

}catch(e){

//若是代碼報錯執行catch中的代碼

}finally{

    //通常不用,無論try中的代碼會不會報錯,都會執行這裏面的代碼

}

//但有時候既想捕獲到錯誤的信息,又想不讓下面的代碼執行

try{

console.log(num) 

}catch (e.message){ //形參必需要寫,通常叫作爲e

//手動拋出一條錯誤信息,終止代碼執行

throw new Error('錯誤信息')

};

//常見錯誤類型

new ReferenceError:引用錯誤

new TypeError:類型錯誤

new RangeError:範圍錯誤

 

//書寫一個完整的類數組轉爲數組的方法

var utils = {

    listToArray : function(likeAry){

        var ary = [];

        try{

            ary=Array.prototype.slice.call(likeAry)

        }cacth(){      

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

                ary[ary.length] = likeAry[i]

            }

        } 

    }

}

相關文章
相關標籤/搜索