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);//true console.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)就給大家介紹這麼多,今天主要給大家總結了這四種,本文寫的不好還請各位大俠多多指教,謝謝!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

本文討論了在瀏覽器中優化JavaScript性能的策略,重點是減少執行時間並最大程度地減少對頁面負載速度的影響。

本文討論了使用瀏覽器開發人員工具的有效JavaScript調試,專注於設置斷點,使用控制台和分析性能。

Python和JavaScript開發者的薪資沒有絕對的高低,具體取決於技能和行業需求。 1.Python在數據科學和機器學習領域可能薪資更高。 2.JavaScript在前端和全棧開發中需求大,薪資也可觀。 3.影響因素包括經驗、地理位置、公司規模和特定技能。

本文說明瞭如何使用源地圖通過將其映射回原始代碼來調試JAVASCRIPT。它討論了啟用源地圖,設置斷點以及使用Chrome DevTools和WebPack之類的工具。

深入探討console.log輸出差異的根源本文將分析一段代碼中console.log函數輸出結果的差異,並解釋其背後的原因。 �...

如何在JavaScript中將具有相同ID的數組元素合併到一個對像中?在處理數據時,我們常常會遇到需要將具有相同ID�...
