注冊/登錄,歡迎光臨!
加入收藏設為首頁網站地圖
您當前的位置:辛勤IT網 >> 頁面特效 >> JavaScript >> JavaScript中typeof和instanceof的區別
熱門:word | excel | powerpoint

JavaScript中typeof和instanceof的區別

2019/5/18 21:16:23 所屬分類:頁面特效 - JavaScript
內容提要:JavaScript中typeof和instanceof的區別,JavaScript中typeof 和instanceof 常用來判斷一個變量是否為空,或者是什么類型的。但它們之間還是有區別的:......

  JavaScript中typeof 和instanceof 常用來判斷一個變量是否為空,或者是什么類型的。但它們之間還是有區別的:

  typeof

  typeof 是一個一元運算,放在一個運算數之前,運算數可以是任意類型。

  它返回值是一個字符串,該字符串說明運算數的類型。typeof 一般只能返回如下幾個結果:

  number,boolean,string,function,object,undefined。我們可以使用 typeof 來獲取一個變量是否存在,如 if(typeof a!="undefined"){alert("ok")},而不要去使用 if(a) 因為如果 a 不存在(未聲明)則會出錯,對于 Array,Null 等特殊對象使用 typeof 一律返回 object,這正是 typeof 的局限性。

  instanceof

  instance:實例,例子

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

  instanceof 用于判斷一個變量是否某個對象的實例,如 var a=new Array();alert(a instanceof Array);
  
  會返回 true,同時 alert(a instanceof Object) 也會返回 true;這是因為 Array 是 object
的子類。再如:function test(){};var a=new test();alert(a instanceof test) 會返回
談到 instanceof 我們要多插入一個問題,就是 function 的 arguments,我們大家也許都認為 arguments 是一個Array,但如果使用 instaceof 去測試會發現 arguments 不是一個 Array 對象,盡管看起來很像。

  另外:

  測試 var a=new Array();if (a instanceof Object) alert('Y');else alert('N');

  得'Y'

  但 if (window instanceof Object) alert('Y');else alert('N');

  得'N'

  所以,這里的 instanceof 測試的 object 是指 js 語法中的 object,不是指 dom 模型對象。

  使用 typeof 會有些區別

  alert(typeof(window)) 會得 object

頁面特效 | JavaScript
相關文章
最近更新
推薦信息
關于我們 | 聯系方式 | 對話本站 | 版權聲明 | 所有信息
福建体彩31选7走势图开奖7