var a=new Boolean(false);
var b=false;
alert(ainstanceofBoolean);
alert(binstanceofBoolean);
最初の true がポップアップします
2 番目のポップアップは false
なぜですか?よくわかりません。
JavaScriptにはプリミティブ型と參照型(オブジェクト)の2種類の値があります。
false
是一個(gè) boolean
原始類型的值,不是對象,所以 false instanceof Boolean
是 false
。
似たもの"foo" instanceof String
也是 false
。
プリミティブ型のチェックは typeof
を使用して実行できます。
typeof false
的值是 "boolean"
が表示されます。小文字の「b」に注意してください。
そして:
typeof Boolean
是 "function"
Boolean instanceof Object
是 true
JavaScript は型変換をサイレントに実行するため、ユーザーは型間の違いを無視することがよくあります。たとえば、var length = "hello world".length
,就是把原始類型 string
轉(zhuǎn)換成了 String
オブジェクトのインスタンスです。
instanceof は、オブジェクトが特定のコンストラクターのインスタンスであるかどうかを判斷するために使用されます
b は明らかにオブジェクトではありません
object を除いて、他のすべての型は、object に屬する Boolean インスタンスであるかどうかを判斷することです。 new によって生成された Boolean インスタンスではない場合、結(jié)果は當(dāng)然 false になります。