判斷一個(gè)對(duì)象是否為jquery對(duì)象使用“instanceof”運(yùn)算符;instanceof運(yùn)算符可以判斷一個(gè)對(duì)象是否為某指定數(shù)據(jù)類(lèi)型,語(yǔ)法為“if(對(duì)象變量 instanceof jQuery){//是jQ對(duì)象}else{//不是}”。
本教程操作環(huán)境:windows7系統(tǒng)、jquery1.10.2版本、Dell G3電腦。
判斷一個(gè)對(duì)象是否為jquery對(duì)象使用“instanceof”運(yùn)算符。
instanceof
:判斷一個(gè)對(duì)象是否為某一數(shù)據(jù)類(lèi)型,或一個(gè)變量是否為一個(gè)對(duì)象的實(shí)例;返回boolean類(lèi)型
示例:
var obj = $("div"); if(obj instanceof jQuery){ alert("這是一個(gè)jQuery對(duì)象"); }else{ alert("這是一個(gè)其它對(duì)象") }
說(shuō)明:instanceof和typeof都能用來(lái)判斷一個(gè)變量是否為空或是什么類(lèi)型的變量。
typeof:用以獲取一個(gè)變量的類(lèi)型,typeof一般只能返回如下幾個(gè)結(jié)果:number、boolean、string、function、object、undefined。
我們可以使用typeof來(lái)獲取一個(gè)變量是否存在,如if(typeof a!="undefined"){}
,而不要去使用if(a)因?yàn)槿绻鸻不存在(未聲明)則會(huì)出錯(cuò),對(duì)于Array、Null等特殊對(duì)象使用typeof 一律返回object,這正是typeof的局限性。
如果我們希望獲取一個(gè)對(duì)象是否是數(shù)組,或判斷某個(gè)變量是否是某個(gè)對(duì)象的實(shí)例則要選擇使用instanceof
。
instanceof用于判斷一個(gè)變量是否某個(gè)對(duì)象的實(shí)例,如
var a=new Array(); alert(a instanceof Array); //會(huì)返回true alert(a instanceof Object) //也會(huì)返回true;這是因?yàn)锳rray是object的子類(lèi) function test(){}; var a=new test(); alert(a instanceof test) //會(huì)返回true
function的arguments,我們大家也許都認(rèn)為arguments是一個(gè)Array,但如果使用instaceof去測(cè)試會(huì)發(fā)現(xiàn)arguments不是一個(gè)Array對(duì)象,盡管看起來(lái)很像。
測(cè)試
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測(cè)試的object是指js語(yǔ)法中的object,不是指dom模型對(duì)象。
使用typeof會(huì)有些區(qū)別
alert(typeof(window) //會(huì)得 object
【推薦學(xué)習(xí):jQuery視頻教程、web前端開(kāi)發(fā)】