国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

JS檢測數組類型的方法小結

2024-05-06 16:35:52
字體:
來源:轉載
供稿:網友

1.instanceof

  當只有一個全局執行環境時適用,如果包含多個框架,就存在兩個以上不同版本的Array構造函數,如果從一個框架向另一個框架傳遞數組,傳入的數組與在第二個框架中原生創建的數組分別具有不同的構造函數,即為不同類型

if (value instanceof Array) {  //對數組執行某項操作   }

2. Array.isArray() 方法

  因為是ES5新增的,只支持IE9+、Firefox 4+、Safari 5+、Opera 10.5+和Chrome

if (Array.isArray(value)) {  //對數組執行某些操作 }

3.Object.prototype.toString.call()方法

  適用于所有環境,只支持原生的對象,Object的toString()方法不能檢測非原生構造函數的構造函數名。開發人員自定義的任何構造函數都將返回[object Object]

  原理:在任何值上直接調用Object的原生toString()方法,都會返回[object NativeConstrctorName]格式的字符串,每個類內部都有一個class屬性,這個屬性中就指定了上述字符串中構造函數名。

var value = []console.log(Object.prototype.toString.call(value))//"[Object Array]"

  由于原生數組的構造函數名和作用域無關,因此使用toString()方法就能保證輸出一樣的值?!?/p>

  為什么不使用對象自己的toString() 方法?  

var value = []console.log(value.toString())//" "value = ['pp','oo']console.log(value.toString())//"pp,oo"value = ['pp',"oo"]console.log(Object.prototype.toString.call(value))//[object Array]

  Array的tostring()方法被重寫了(很多原生對象均如此),所以它會調用自己構造函數上的toString()方法,返回其他的字符串

  還可以用此方法來判斷是不是原生函數或者正則表達式  

function isFunction(value){    return Object.prototype.toString.call(value) === “[object Function]”}//不適用于IE中以COM對象實現的任何函數function isRegExp(value){    return Object.prototype.toString.call(value) === “[object RegExp]”}

以上所述是小編給大家介紹的JS檢測數組類型的方法小結,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 格尔木市| 二连浩特市| 绵阳市| 盘山县| 鹤山市| 荣昌县| 宜兰县| 靖州| 昆山市| 阿拉善盟| 突泉县| 宾阳县| 邢台县| 五寨县| 大城县| 博白县| 逊克县| 肃南| 成都市| 南昌市| 河津市| 潢川县| 灌云县| 怀化市| 西充县| 信阳市| 株洲市| 永德县| 麦盖提县| 图木舒克市| 渑池县| 淮阳县| 南涧| 乌兰县| 宣武区| 韶关市| 阳山县| 旬邑县| 临潭县| 西乌珠穆沁旗| 富蕴县|