在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ js instanceof判斷問題

js instanceof判斷問題

問題描述

類型判斷

問題出現(xiàn)的環(huán)境背景及自己嘗試過哪些方法

類型判斷

相關(guān)代碼

a = true
b = new Boolean(true)
b instanceof Boolean // true
a.constructor === b.constructor // true

why?
a instanceof Boolean ? false

你期待的結(jié)果是什么?實際看到的錯誤信息又是什么?

是否能分析a = true和 new Boolean(true)區(qū)別, instanceof判斷原理

回答
編輯回答
有你在
  • 在控制臺輸入 typeof a 你會發(fā)現(xiàn)他是一個'boolean' 而不是一個Boolean
  • 然后再輸入 typeof b 你會發(fā)現(xiàn)輸出的是一個'object' js中Boolean只是一個對象
  • instanceof 判斷的是 左邊的對象的原型對象是否是右邊的構(gòu)造函數(shù)的同級prototype. 當(dāng)判斷a instanceof Boolean的時候,js底層會把a轉(zhuǎn)換成具有屬性的對象,其實在底層來說他們是一樣的,但是他又不是new 出來的 所以 instanceof 返回的是false
  • 試想一下 你自定義了一個類 在你沒通過new調(diào)用的時候 用其他的方式產(chǎn)生了一個屬于該類的實例,程序是不是變得有點不可預(yù)測了?
  • 以上僅個人愚見,并非權(quán)威解答,大神見了莫噴,大家可以互相交流學(xué)習(xí).
2017年5月20日 22:12