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

首頁 > 開發 > JS > 正文

JavaScript判斷變量是否為數組的方法(Array)

2024-05-06 16:29:07
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了JavaScript判斷變量是否為數組的方法(Array),涉及到javascript 數組 變量相關知識,感興趣的朋友一起學習吧
 

 今天小編給大家整理些關于javascript判斷變量是否是數組(Array)的相關知識,主要通過以下四點給大家展開話題,具體內容如下所示:

1. typeof真的那么厲害嗎??

//首先看代碼var ary = [1,23,4];console.log(typeof ary); //輸出結果是Object

上面的辦法并不能實時的檢測出是否是數組,只能判斷其類型,所以說typeof判斷基本類型數據還是挺好的,但是不能準確測試出是否是數組(typeof的具體用法以后提及,現在回歸正題)

2.instanceof 判斷

var ary = [1,23,4];console.log(ary instanceof Array)//true;

從輸出的效果來看,還是挺令人滿意的,能準確的檢測出數據類型是否是數組,不要高興的太早,大家先想想這個的缺點,我們接著說第三種方法

3.原型鏈方法

var ary = [1,23,4];console.log(ary.__proto__.constructor==Array);//trueconsole.log(ary.constructor==Array)//true 這兩段代碼是一樣的

這個辦法開起來好高大上哦~~,利用了原型鏈的方法,但是但是,這個是有兼容的哦,在IE早期版本里面__proto__是沒有定義的哦~而且,這個仍然有局限性,我們現在就來總結一下第2種方法和第3種方法局限性

總結一下第2種方法和第3種方法局限性

instanceof 和constructor 判斷的變量,必須在當前頁面聲明的,比如,一個頁面(父頁面)有一個框架,框架中引用了一個頁面(子頁面),在子頁面中聲明了一個ary,并將其賦值給父頁面的一個變量,這時判斷該變量,Array == object.constructor;會返回false;

原因:

1、array屬于引用型數據,在傳遞過程中,僅僅是引用地址的傳遞。

2、每個頁面的Array原生對象所引用的地址是不一樣的,在子頁面聲明的array,所對應的構造函數,是子頁面的Array對象;父頁面來進行判斷,使用的Array并不等于子頁面的Array;切記,不然很難跟蹤問題!

4.通用的方法

var ary = [1,23,4];function isArray(o){return Object.prototype.toString.call(o)=='[object Array]';}console.log(isArray(ary));

具體Object.prototype.toString 的用法,請參照 Object.prototype.toString的用法

好了關于JavaScript判斷變量是否為數組的方法(Array)就給大家介紹這么多,今天主要給大家總結了這四種,本文寫的不好還請各位大俠多多指教,謝謝!



注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武邑县| 临夏县| 西充县| 民勤县| 双辽市| 龙门县| 铜梁县| 嘉义县| 湖南省| 孟村| 阜新市| 龙江县| 龙海市| 海阳市| 天长市| 峨山| 安陆市| 建平县| 福泉市| 西乡县| 宿州市| 元氏县| 巴东县| 博野县| 安图县| 搜索| 黑龙江省| 西平县| 于都县| 江源县| 上蔡县| 玛沁县| 华蓥市| 延津县| 遂宁市| 叶城县| 彩票| 喜德县| 庆阳市| 蒙阴县| 浪卡子县|