首頁  >  問答  >  主體

javascript - Boolean物件和基本型Boolean區別

var a=new Boolean(false);
var b=false;
alert(a instanceof Boolean);
alert(b instanceof Boolean);
第一個彈出true
第二個彈出false
為什麼?不是太懂。

淡淡烟草味淡淡烟草味2650 天前1095

全部回覆(4)我來回復

  • 阿神

    阿神2017-07-05 10:58:40

    JavaScript 裡的值有兩種:原始型別和參考型別(物件)。

    false 是一個 boolean 原始類型的值,不是對象,所以 false instanceof Booleanfalse

    同理 "foo" instanceof String 也是 false

    檢查原始型別可以用 typeof

    你會看到 typeof false 的值是 "boolean",注意是小寫「b」。

    以及:

    typeof Boolean"function"
    Boolean instanceof Objecttrue

    由於 JavaScript 會悄悄做型別轉換,很多時候會讓使用者疏忽這型別之間的差異。例如 var length = "hello world".length,就是把原始型別 string 轉換成了 String 物件的​​實例。

    回覆
    0
  • PHP中文网

    PHP中文网2017-07-05 10:58:40

    雷雷

    回覆
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-07-05 10:58:40

    instanceof 是用來判斷物件是否為某個建構子的實例
    b顯然不是物件

    回覆
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-07-05 10:58:40

    除object外,其他類型都屬於基本型,你這裡就是判斷是否為Boolean實例,屬於object,後面的基本型別就是false了,不是new出來的一個Boolean實例,結果當然也就是false了。

    回覆
    0
  • 取消回覆