主要有兩中,typeof 和 instanceof,juti用法如下
typeof 運算子
對於Function, String, Number ,Undefined 等幾種類型的物件來說,他完全可以勝任,但是為Array時
1 var arr=new Array("1","2","3","4","5");
2 alert(typeof(arr));
你會收到一個object 的答案,有點讓人失望。
instanceof 運算子
JavaScript中instanceof運算子會傳回一個 Boolean 值,指出物件是否是特定類別的一個實例。使用方法:result = object instanceof class,還是剛剛的數組,再來一次,嗯,成功的回傳 true。
1 var arrayStr=new Array("1","2","3","4","5");
2 alert(arrayStr instanceof Array);
小總結:看樣子我們今天討論的問題已經得到了解答,但事實上在多個frame中穿梭就會產生大問題了。
因為無論是數組還是對象,對於typeof的操作返回值都為object,所以就有了區分數組類型和對象類型的需要:
方一:透過length屬性:一般情況下物件沒有length屬性值,其值為undefiend,而陣列的length值為number型別
缺點:非常不實用,當物件的屬性存在length,且其值為number(例如類別數組),則該方法失效,不建議使用,看看即可。
*方二:透過instanceof來判斷區分
var arr = [1, 2, 3]; var obj = {name: 'lyl',age: 18, 1: 'name'}console.log(arr instanceof Array); //trueconsole.log(obj instanceof Array); //false
*方三:透過constructor
var arr = [1, 2, 3]; var obj = {name: 'lyl',age: 18, 1: 'name'}console.log(arr.constructor === Array); //trueconsole .log(obj.constructor === Array); //false
以上是如何判斷一個資料是不是數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!