Heim  >  Fragen und Antworten  >  Hauptteil

javascript – Unterschied zwischen Boolean-Objekt und Basistyp Boolean

var a=new Boolean(false);
var b=false;
alert(eine Instanz von Boolean);
alert(b-Instanz von Boolean);
Der erste erscheint als wahr.
Der zweite erscheint als falsch.
Warum? Ich verstehe es nicht ganz.

淡淡烟草味淡淡烟草味2650 Tage vor1093

Antworte allen(4)Ich werde antworten

  • 阿神

    阿神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 对象的实例。

    Antwort
    0
  • PHP中文网

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

    var a = new Boolean(false);
    var b = false;
    alert(typeof a); // 'Object'
    alert(typeof b); // 'Boolean'
    alert(a === b); // false

    Antwort
    0
  • 过去多啦不再A梦

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

    instanceof 是用于判断对象是否为某个构造函数的实例
    b显然不是对象

    Antwort
    0
  • 女神的闺蜜爱上我

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

    除object外,其他类型都属于基本类型,你这里就是判断是否为Boolean实例,属于object,后面的基本类型就是false了,不是new出来的一个Boolean实例,结果当然也就是false了。

    Antwort
    0
  • StornierenAntwort