1. 程式人生 > >比較typeof與instanceof

比較typeof與instanceof

相同點:JavaScript 中 typeof 和 instanceof 常用來判斷一個變數是否為空,或者是什麼型別的。

typeof 的定義和用法:返回值是一個字串,用來說明變數的資料型別。

細節:

(1)、typeof 一般只能返回如下幾個結果:number, boolean, string,function,object,undefined。

(2)、typeof 來獲取一個變數是否存在,如 if(typeof a!="undefined"){alert('OK')},而不要去使用if(a) 因為如果a不存在(未宣告)則會出錯。

(3)、對於Array,Null等特殊物件使用typeof 一律返回object, 這正是typeof的侷限性。

instanceof 定義和用法:instanceof 用於判斷一個變數是否屬於某個物件的例項。

/-----------

例項演示:

a instanceof b ? alert('true') : alert('false'); // a是b的例項? 真:假

var a = new Array();

alert(a instanceof Array); // true    alert(a instanceof Object) // true

如上,會返回true,同時alert(a instanceof Object)也會返回true;這是因為Array是Object的子類。

function Test () {};

var a = new Test();

alert(a instanceof Test) // true

--------------/

細節:

(1)、如下,得到的結果為N ,這裡的instanceof 測試的object是js語法中的object ,不是指dom模型物件。

if(window instanceof Object) {alert('Y')}else{alert('N'} // N