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. PHPExcel表格導(dǎo)入數(shù)據(jù)庫(kù)怎么導(dǎo)入2. 預(yù)訂金和尾款分別支付3. thinkphp6使用驗(yàn)證器 信息如何輸出到前端頁(yè)面4. macos - 無(wú)法source activate python275. python - 調(diào)用api輸出頁(yè)面,會(huì)有標(biāo)簽出現(xiàn),請(qǐng)問(wèn)如何清掉?6. 運(yùn)行python程序時(shí)出現(xiàn)“應(yīng)用程序發(fā)生異?!钡膬?nèi)存錯(cuò)誤?7. python - sqlalchemy更新數(shù)據(jù)報(bào)錯(cuò)8. 我在導(dǎo)入模板資源時(shí)遇到無(wú)法顯示的問(wèn)題,請(qǐng)老師解答下9. empty比isset更嚴(yán)格一點(diǎn)10. javascript - h5微信中怎么禁止橫屏

網(wǎng)公網(wǎng)安備