使用typeof 來判斷型態,比較需要特別注意的是
1.判斷Array的寫法
2.null 會是object
3.undefined 還是undefined
var a = 3;
console.log(typeof a); // number
var b = "Hello";
console.log(typeof b); // string
var c = {};
console.log(typeof c); // object
var d = [];
console.log(typeof d); // object
console.log(Object.prototype.toString.call(d)); // [object Array]
var e = false;
console.log(typeof e); // boolean
function Person(name){
this.name = name;
}
console.log(typeof Person); // function
var f = new Person("Jane");
console.log(typeof f); // object
console.log(typeof undefined); // undefined
console.log(typeof null); // object
需要特別注意的是判斷Array的寫法,
如果直接用typeof去判斷 array的話,得到的型態是object
如果要判斷是不是陣列,要改用 Object.prototype.toString.call(陣列物件名稱)
var c = {};
var d = [];
//console.log(typeof d); // object
console.log(Object.prototype.toString.call(d)); // [object Array]
console.log(Object.prototype.toString.call(c)); // [object Object]
// 判斷是否為Array
console.log(Object.prototype.toString.call(d) === '[object Array]');
// true
// 判斷是否為物件
console.log(Object.prototype.toString.call(c) === '[object Object]');
// true
執行結果