淺談javascript中的instanceof和typeof
對(duì)于instanceof和typeof,以前偶爾的用到過(guò),特別是typeof用到的相對(duì)更多一些,今日研究ext源碼,很多地方都用到了instanceof,突然覺(jué)得他們兩個(gè)有些相似但也應(yīng)該有他們區(qū)別,網(wǎng)上看了一些文章,對(duì)它們之間的關(guān)系有了一定的了解。
instanceof和typeof都能用來(lái)判斷一個(gè)變量是否為空或是什么類型的變量。
typeof用以獲取一個(gè)變量的類型,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,同時(shí)alert(a instanceof Object)也會(huì)返回true;這是因?yàn)锳rray是object的子類。再如:function test(){};var a=new test();alert(a instanceof test)會(huì)返回true。
談到instanceof我們要多插入一個(gè)問(wèn)題,就是function的arguments,我們大家也許都認(rèn)為arguments是一個(gè)Array,但如果使用instaceof去測(cè)試會(huì)發(fā)現(xiàn)arguments不是一個(gè)Array對(duì)象,盡管看起來(lái)很像。
- 菜鳥(niǎo)也能搞懂js中typeof與instanceof區(qū)別
- 詳解JavaScript中typeof與instanceof用法
- Javascript typeof與instanceof的區(qū)別
- JavaScript類型檢測(cè)之typeof 和 instanceof 的缺陷與優(yōu)化
- 談?wù)勎覍?duì)JavaScript中typeof和instanceof的深入理解
- JavaScript中instanceof與typeof運(yùn)算符的用法及區(qū)別詳細(xì)解析
- JS中typeof與instanceof之間的區(qū)別總結(jié)
- 關(guān)于js typeof 與 instanceof 判斷數(shù)據(jù)類型區(qū)別及開(kāi)發(fā)使用
相關(guān)文章
JS實(shí)現(xiàn)上傳圖片實(shí)時(shí)預(yù)覽功能
這篇文章主要介紹了JS實(shí)現(xiàn)上傳圖片實(shí)時(shí)預(yù)覽功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-05-05jquery 實(shí)現(xiàn)輸入郵箱時(shí)自動(dòng)補(bǔ)全下拉提示功能
大家在做Web項(xiàng)目,都會(huì)有注冊(cè)登錄模塊,如果是郵箱注冊(cè),想要在輸入@后觸發(fā)下拉框顯示各個(gè)郵箱的功能。下面介紹一款jQuery實(shí)現(xiàn)輸入郵箱的時(shí)候,可自動(dòng)補(bǔ)全郵箱地址,也可稱為是“輸入提示”的功能,比如輸入aaa時(shí),自動(dòng)變成aaa@163.com,有效提升網(wǎng)頁(yè)的人性化體驗(yàn)2015-10-10淺談javascript的call()、apply()、bind()的用法
這篇文章主要為大家詳細(xì)介紹了javascript的call()、apply()、bind()的用法,探討JavaScript中函數(shù)的一些特殊用法,感興趣的小伙伴們可以參考一下2016-02-02詳解微信小程序的不同函數(shù)調(diào)用的幾種方法
這篇文章主要介紹了微信小程序的不同函數(shù)調(diào)用的幾種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05JavaScript Event學(xué)習(xí)第十章 一些可替換的事件對(duì)
為了讓我們的JavaScript驅(qū)動(dòng)的頁(yè)面對(duì)那些不能或者不想使用鼠標(biāo)的用戶也能很好的使用,我們對(duì)于像mouseover和click這樣的事件做一些處理,同樣的,對(duì)于非鼠標(biāo)事件也同樣的要我們的腳本執(zhí)行。2010-02-02js漢字排序問(wèn)題 支持中英文混排,兼容各瀏覽器,包括CHROME
這套排序機(jī)制同時(shí)兼容了IE和ff 可以實(shí)現(xiàn)所有瀏覽器下排序的統(tǒng)一哦2011-12-12javascript原生封裝一個(gè)淡入淡出效果的函數(shù)測(cè)試實(shí)例代碼
這篇文章主要介紹了javascript原生封裝一個(gè)淡入淡出效果的函數(shù),主要有FadeIn淡入函數(shù)和FadeOut淡出函數(shù),需要的朋友可以參考下2018-03-03Javascript將雙字節(jié)字符轉(zhuǎn)換成單字節(jié)字符并計(jì)算長(zhǎng)度
這篇文章主要介紹Javascript將雙字節(jié)字符轉(zhuǎn)換成單字節(jié)字符并計(jì)算長(zhǎng)度的方法,簡(jiǎn)單實(shí)用,需要的朋友可以參考下。2016-06-06