Die Vorteile des Gegenstandes und Array-Literalen über die jeweiligen Konstruktoren verwenden, sind:
- Shorter und lesbarer
- Safer: Literale wird immer noch funktionieren, wenn die
Array
oder Object
Konstruktoren
- Möglicherweise außer Kraft gesetzt wurden, schneller, obwohl es unwahrscheinlich ist, eine Hauptüberlegung zu sein (irgendwelche Engpässe werden mit ziemlicher Sicherheit anderswo im Code entstehen)
Im Falle von Arrays gibt es einen weiteren Vorteil eines Literals: Es ist unmöglich, ein Array mit einem einzelnen Element zu erstellen, indem nur der Konstruktor Array
verwendet wird. Zum Beispiel [3]
wird ein Array mit einem Element erstellen, das ist die Nummer 3, während new Array(3)
eine Reihe von Länge erzeugt 3.
Update: Der folgende Absatz ist nicht mehr relevant nun die Frage bearbeitet wurde.
In Bezug auf Booleans scheinen Sie ein Missverständnis zu haben: new Boolean(false)
ist nicht dasselbe wie false
. Der Boolean()
-Konstruktor erstellt ein boolesches Objekt, während false
und true
Boolesche Primitive sind. Tatsächlich wird new Boolean(false)
zu true
ausgewertet, wenn es in eine Boolean-Anweisung umgewandelt wird, zum Beispiel in eine if
-Anweisung.Kurz gesagt, es gibt sehr selten einen Grund, den Boolean()
Konstruktor zu verwenden. Verwenden Sie stattdessen true
und false
. In ähnlicher Weise haben andere Primitive wie Strings und Zahlen entsprechende String()
und Number()
Konstruktoren, die String
und Number
Objekte erzeugen, die sich von primitiven Strings und Zahlen unterscheiden und im Allgemeinen vermieden werden sollten.
'new Boolean (true)' ist nicht gleichbedeutend mit 'true' –
mit dieser Korrektur bearbeitet werden. –