javascript - Boolean對(duì)象和基本類(lèi)型Boolean區(qū)別
問(wèn)題描述
var a=new Boolean(false);var b=false;alert(a instanceof Boolean);alert(b instanceof Boolean);第一個(gè)彈出true第二個(gè)彈出false為什么?不是太懂。
問(wèn)題解答
回答1:JavaScript 里的值有兩種類(lèi)型:原始類(lèi)型和引用類(lèi)型(對(duì)象)。
false 是一個(gè) boolean 原始類(lèi)型的值,不是對(duì)象,所以 false instanceof Boolean 是 false。
同理 'foo' instanceof String 也是 false。
檢查原始類(lèi)型可以用 typeof。
你會(huì)看到 typeof false 的值是 'boolean',注意是小寫(xiě)“b”。
以及:
typeof Boolean 是 'function'Boolean instanceof Object 是 true
由于 JavaScript 會(huì)悄悄做類(lèi)型轉(zhuǎn)換,很多時(shí)候會(huì)讓使用者疏忽這類(lèi)型之間的差異。比如 var length = 'hello world'.length,就是把原始類(lèi)型 string 轉(zhuǎn)換成了 String 對(duì)象的實(shí)例。
回答2:var a = new Boolean(false);var b = false;alert(typeof a); // ’Object’alert(typeof b); // ’Boolean’alert(a === b); // false回答3:
instanceof 是用于判斷對(duì)象是否為某個(gè)構(gòu)造函數(shù)的實(shí)例 b顯然不是對(duì)象
回答4:除object外,其他類(lèi)型都屬于基本類(lèi)型,你這里就是判斷是否為Boolean實(shí)例,屬于object,后面的基本類(lèi)型就是false了,不是new出來(lái)的一個(gè)Boolean實(shí)例,結(jié)果當(dāng)然也就是false了。
相關(guān)文章:
1. html5 - 最近在自學(xué)react 求一個(gè)react表單提交的例子2. 老師您好!我有一個(gè)問(wèn)題、3. javascript - jq 上傳圖片成功后添加一個(gè)新的上傳框時(shí)出現(xiàn)問(wèn)題4. 網(wǎng)站上有個(gè)圖標(biāo)改不了了 求幫忙 是用svg寫(xiě)的5. 我和老師的代碼對(duì)照了幾遍沒(méi)發(fā)現(xiàn)問(wèn)題,但是瀏覽器打開(kāi)就有問(wèn)題了,求解6. python django工程上傳一張照片調(diào)用python方法時(shí)報(bào)錯(cuò),請(qǐng)問(wèn)如何處理?7. python - Django ManyToManyField 字段數(shù)據(jù)在 admin后臺(tái) 顯示不正確,這是怎么回事?8. javascript - vscode alt+shift+f 格式化js代碼,通不過(guò)eslint的代碼風(fēng)格檢查怎么辦。。。9. python - angular route 與 django urls 沖突怎么解決?10. mysql - 千萬(wàn)數(shù)據(jù) 分頁(yè),當(dāng)偏移量 原來(lái)越大時(shí),怎么優(yōu)化速度
