Array.isArray() 用來檢驗是不是數組 可以看出 typeof 並不能檢驗數組,雖然 Array.isArray() 可以檢驗數組,但是 IE8 都不相容 這個方法可以相容IE8 以及以下的瀏覽器 typeof 這裡 null 是基本類型,不是一個對象,這個是 JS 的一個 bug。還有 ...
Array.isArray()
用來檢驗是不是數組
var a = [1,2,3] console.log(typeof a); // object console.log(Array.isArray(a)); // true
可以看出 typeof 並不能檢驗數組,雖然 Array.isArray() 可以檢驗數組,但是 IE8 都不相容
var a = [1,2,3] alert(Object.prototype.toString.call(a)) // [object Array]
這個方法可以相容IE8 以及以下的瀏覽器
typeof
function foo(){} console.log(typeof foo); // function console.log(typeof null); // object console.log(typeof undefined); // undefined console.log(typeof 'a'); // string console.log(typeof 1); // number
這裡 null 是基本類型,不是一個對象,這個是 JS 的一個 bug。還有一個值得註意的地方:
console.log(undefined == null); // true
因為在 JS 中 undefined 是派生自 null 的
instanceof
function foo(){} var a = new foo() console.log(a instanceof foo); // true
instanceof 是根絕原型鏈來查找的,如果函數 foo 的顯示原型對象在 a 對象的隱式原型鏈上,則返回 true,否則返回 false
綠色的就是對象 a 的原型鏈