js判斷乙個變數是否為陣列

2021-10-01 22:53:34 字數 928 閱讀 2878

var ary = [1,23,4]; 

console.log(ary.__proto__.constructor==array); //true

console.log(ary.constructor==array) //true 這兩段**是一樣的

有侷限性

var ary = [1,23,4];

console.log(ary instanceof array) //true;

利用了原型鏈的方法,但是但是,這個是有相容的哦,在ie早期版本裡面__proto__是沒有定義的哦~而且,這個仍然有侷限性,我們現在就來總結一下第2種方法和第3種方法侷限性

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

instanceof 和constructor 判斷的變數,必須在當前頁面宣告的,比如,乙個頁面(父頁面)有乙個框架,框架中引用了乙個頁面(子頁面),在子頁面中宣告了乙個ary,並將其賦值給父頁面的乙個變數,這時判斷該變數,array == object.constructor;會返回false;

原因:1、array屬於引用型資料,在傳遞過程中,僅僅是引用位址的傳遞。

2、每個頁面的array原生物件所引用的位址是不一樣的,在子頁面宣告的array,所對應的建構函式,是子頁面的array物件;父頁面來進行判斷,使用的array並不等於子頁面的array;切記,不然很難跟蹤問題!

var ary = [1,23,4];

function isarray(o)

console.log(isarray(ary));

這個方法的返回值為object 和o的資料型別,就可以通過o的資料型別 來判斷是否是array如果是的就返回true 不是就返回flase 這樣我們就可以通過這個來判斷這個變數是否是陣列 同樣也可以用到其他的資料型別的判斷

判斷乙個js變數是否為陣列

今天小編給大家整理些關於j ascript判斷變數是否是陣列 array 的相關知識,主要通過以下四點給大家展開話題,具體內容如下所示 1.typeof真的那麼厲害嗎?首先看 var ary 1,23,4 console.log typeof ary 輸出結果是object上面的辦法並不能實時的檢測...

判斷乙個變數是否為陣列

1 var array new array 1 2 3 4 5 console.log array instanceof array true 2 var array new array 1 2 3 4 5 console.log array.constructor array true 3 fun...

js 如何判斷乙個變數是否為空

核心在 if 條件,括號前面取反,這樣做的目的 整潔,不用每個或條件都加取反,括號裡面如果有乙個滿足,返回true,取反就是false,也就是說如果判斷的值為空為true,取反就為false,所以不執行if條件,百試不爽!這是我自用的,歡迎補充!通過和未通過的顏色 let checkcolor if...