javascript - Boolean對象和基本類型Boolean區(qū)別
問題描述
var a=new Boolean(false);var b=false;alert(a instanceof Boolean);alert(b instanceof Boolean);第一個彈出true第二個彈出false為什么?不是太懂。
問題解答
回答1:JavaScript 里的值有兩種類型:原始類型和引用類型(對象)。
false 是一個 boolean 原始類型的值,不是對象,所以 false instanceof Boolean 是 false。
同理 'foo' instanceof String 也是 false。
檢查原始類型可以用 typeof。
你會看到 typeof false 的值是 'boolean',注意是小寫“b”。
以及:
typeof Boolean 是 'function'Boolean instanceof Object 是 true
由于 JavaScript 會悄悄做類型轉(zhuǎn)換,很多時候會讓使用者疏忽這類型之間的差異。比如 var length = 'hello world'.length,就是把原始類型 string 轉(zhuǎn)換成了 String 對象的實例。
回答2:var a = new Boolean(false);var b = false;alert(typeof a); // ’Object’alert(typeof b); // ’Boolean’alert(a === b); // false回答3:
instanceof 是用于判斷對象是否為某個構(gòu)造函數(shù)的實例 b顯然不是對象
回答4:除object外,其他類型都屬于基本類型,你這里就是判斷是否為Boolean實例,屬于object,后面的基本類型就是false了,不是new出來的一個Boolean實例,結(jié)果當(dāng)然也就是false了。
相關(guān)文章:
1. objective-c - 微信快捷發(fā)送最近一張圖片是如何實現(xiàn)的?2. 子查詢 - mysql如何把多行數(shù)據(jù)合并到一行的多列中3. mysql如何判斷數(shù)據(jù)不存在則插入呢?4. 導(dǎo)入數(shù)據(jù)庫不成功5. mysql - 關(guān)于數(shù)據(jù)緩存策略方面的疑惑6. mysql如何配置遠(yuǎn)程php外網(wǎng)鏈接數(shù)據(jù)庫7. 老師 我是一個沒有學(xué)過php語言的準(zhǔn)畢業(yè)生 我希望您能幫我一下8. mysql 5萬張表 導(dǎo)出成sql 不要內(nèi)容,只要結(jié)構(gòu),非常慢。如何解決啊?9. PHP單例模式10. 數(shù)據(jù)庫 - mysql中有沒查看數(shù)據(jù)大小的函數(shù)??
