typeof和instanceof的差異是:typeof的回傳值是一個字串,用來說明變數的資料型別;instanceof的回傳值是布林值,用來判斷一個變數是否屬於某個物件的實例。
比較typeof與instanceof
相同點:
JavaScript 中typeof 和instanceof 常用來判斷一個變數是否為空, 或者是什麼類型的。
(學習影片推薦:javascript影片教學)
不同點:
typeof:
1、傳回值是一個字串, 用來說明變數的資料型態。
2、typeof 一般只能回傳以下幾個結果: number, boolean, string, function, object, undefined。
if (typeof a != "undefined") { console.log("ok"); } eles { console.log("not ok"); } //下面的代码是错误的 // if (a) //因为如果 a 不存在( 未声明) 则会出错。 // if (a) { // console.log("ok"); // } else { // console.log('cc'); // }
對於 Array, Null 等特殊物件使用 typeof 一律傳回 object, 這正是 typeof 的限制。
instanceof:
1、傳回值為布林值
2、instanceof 用來判斷一個變數是否屬於某個物件的實例。
// var a = new Array(); // alert(a instanceof Array); // true // alert(a instanceof Object) // true //如上, 会返回 true, 同时 alert(a instanceof Object) 也会返回 true; // 这是因为 Array 是 object 的子类。 // alert(b instanceof Array) // b is not defined // function Test() {}; // var a = new test(); // alert(a instanceof test) // true
相關推薦:js教學
以上是typeof和instanceof的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!