關(guān)于javascript中的typeof和instanceof介紹
typeof用來(lái)檢測(cè)給定變量的數(shù)據(jù)類型(也可叫做基本類型,基本數(shù)據(jù)類型。包含undefined、boolean、string、number、object、function)
var message = "so easy";
alert(typeof message); //"string"
alert(typeof 12); //"number"
可以這樣記憶:typeof是用來(lái)判斷不是用new創(chuàng)建的“變量”。
instanceof用來(lái)檢測(cè)對(duì)象的類型(也可叫做引用類型。包含Object、Array、Date、RegExp、Function、基本包裝類型(含Boolean、Number、String))
var numberObject = new Number(10);
var numberValue = 10;
alert(typeof numberObject); //"object"
alert(typeof numberValue); //"number"
alert(numberObject instanceof Number); //true
alert(numberValue instanceof Number); //false
numberValue是number基礎(chǔ)數(shù)據(jù)類型,不屬于任何引用類型。
numberObject是object基礎(chǔ)數(shù)據(jù)類型,屬于Number引用類型(所有引用類型都從Object引用類型繼承而來(lái))。
可以這樣記憶:instanceof檢測(cè)的都是用new創(chuàng)建的“對(duì)象”。而沒有通過new創(chuàng)建出來(lái)的“變量”不屬于任何一個(gè)引用類型。用typeof檢測(cè)用new創(chuàng)建的“對(duì)象”始終返回的是“object引用類型”.
isPrototypeOf()方法用來(lái)檢測(cè)原型和實(shí)例的關(guān)系。instanceof同樣也可以檢測(cè)。只要是原型鏈中出現(xiàn)過的原型,都可以說是該原型鏈所派生的實(shí)例的原型。
var person = new Person(); //Person繼承與Object
alert(Person.prototype.isPrototypeOf(person)); //true
alert(Object.prototype.isPrototypeOf(person)); //true
- 詳解JavaScript中typeof與instanceof用法
- Javascript typeof與instanceof的區(qū)別
- JavaScript類型檢測(cè)之typeof 和 instanceof 的缺陷與優(yōu)化
- 談?wù)勎覍?duì)JavaScript中typeof和instanceof的深入理解
- 淺談javascript中的instanceof和typeof
- JavaScript中instanceof與typeof運(yùn)算符的用法及區(qū)別詳細(xì)解析
- JS中typeof與instanceof之間的區(qū)別總結(jié)
- javascript之typeof、instanceof操作符使用探討
- javascript instanceof,typeof的區(qū)別
- javascript instanceof 與typeof使用說明
- 菜鳥也能搞懂js中typeof與instanceof區(qū)別
相關(guān)文章
淘寶網(wǎng)提供的國(guó)內(nèi)NPM鏡像簡(jiǎn)介和使用方法
我們以前介紹過cnpmjs.org,非常棒的npm國(guó)內(nèi)鏡像。由于其使用量越來(lái)越大,加上淘寶內(nèi)部也有很多項(xiàng)目使用 NodeJS,于是,淘寶正式基于 cnpmjs 推出了鏡像服務(wù)2014-04-04javascript學(xué)習(xí)筆記(十三) js閉包介紹(轉(zhuǎn))
閉包(closure)是Javascript語(yǔ)言的一個(gè)難點(diǎn),也是它的特色,很多高級(jí)應(yīng)用都要依靠閉包實(shí)現(xiàn)2012-06-06Javascript 動(dòng)態(tài)改變imput type屬性
這篇文章主要介紹了Javascript 動(dòng)態(tài)改變imput type屬性的相關(guān)資料,并附簡(jiǎn)單實(shí)例代碼,需要的朋友可以參考下2016-11-11移動(dòng)端自適應(yīng)flexible.js的使用方法(不用三大框架,僅寫一個(gè)單html頁(yè)面使用)推薦
這篇文章主要介紹了移動(dòng)端自適應(yīng)flexible.js使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04對(duì)象轉(zhuǎn)換為原始值的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇對(duì)象轉(zhuǎn)換為原始值的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2016-06-06