javascript - Boolean對(duì)象和基本類型Boolean區(qū)別
問題描述
var a=new Boolean(false);var b=false;alert(a instanceof Boolean);alert(b instanceof Boolean);第一個(gè)彈出true第二個(gè)彈出false為什么?不是太懂。
問題解答
回答1:JavaScript 里的值有兩種類型:原始類型和引用類型(對(duì)象)。
false 是一個(gè) boolean 原始類型的值,不是對(duì)象,所以 false instanceof Boolean 是 false。
同理 'foo' instanceof String 也是 false。
檢查原始類型可以用 typeof。
你會(huì)看到 typeof false 的值是 'boolean',注意是小寫“b”。
以及:
typeof Boolean 是 'function'Boolean instanceof Object 是 true
由于 JavaScript 會(huì)悄悄做類型轉(zhuǎn)換,很多時(shí)候會(huì)讓使用者疏忽這類型之間的差異。比如 var length = 'hello world'.length,就是把原始類型 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外,其他類型都屬于基本類型,你這里就是判斷是否為Boolean實(shí)例,屬于object,后面的基本類型就是false了,不是new出來的一個(gè)Boolean實(shí)例,結(jié)果當(dāng)然也就是false了。
相關(guān)文章:
1. android - NavigationView 的側(cè)滑菜單中如何保存新增項(xiàng)(通過程序添加)2. mysql服務(wù)無法啟動(dòng)1067錯(cuò)誤,誰知道正確的解決方法?3. javascript - 微信公眾號(hào)網(wǎng)頁使用redux如何管理用戶刷新?4. 提示語法錯(cuò)誤語法錯(cuò)誤: unexpected ’abstract’ (T_ABSTRACT)5. 這段代碼既不提示錯(cuò)誤也看不到結(jié)果,請(qǐng)老師明示錯(cuò)在哪里,謝謝!6. php7.3.4中怎么開啟pdo驅(qū)動(dòng)7. 老師 我是一個(gè)沒有學(xué)過php語言的準(zhǔn)畢業(yè)生 我希望您能幫我一下8. ueditor上傳服務(wù)器提示后端配置項(xiàng)沒有正常加載,求助?。。。。?/a>9. tp5 不同控制器中的變量調(diào)用問題10. php - 第三方支付平臺(tái)在很短時(shí)間內(nèi)多次異步通知,訂單多次確認(rèn)收款
