Javascript: Ist ein leeres Objekt ein falsy ein?
Den leeren Objekt nicht definiert ist, wie dies var empty_obj = {}
.
Einen undefinierten werden falsch. Aber ich merke, dass
empty_obj || 3
zurück empty_obj
nicht 3
.
Warum ist das so?
- Warum sollte es falsy? Seine durchaus sinnvoll, alle Objekte werden truthy und in der Tat viele andere Sprachen das tun.
- Versuchen
if (Object.keys(obj).length)
zu prüfen, ob leer
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das leere Objekt ist nicht nicht definiert.
Es ist ein Wert truthy:
Es hat sogar einige Eigenschaften:
Nur falsy-Werte in JS sind
0
,false
,null
,undefined
leere string, undNaN
.Ihnen verwechselt werden können, durch den return-Wert von
var =
Aussagen. Diese wird immer alsundefined
in der Chrome console:Nur weil die
var =
- Anweisung den Wert undefiniert zurückgibt, bedeutet das nicht den Wert undefiniert. Obwohl, ohne dievar
Zuweisungen kehren, der Wert zugewiesen wird:{} == true
false zurück?{} == false
auch false zurück."some string" == true
auch false zurück.document.all
ist auch falsy.Das leere Objekt ist nicht undefiniert, nur Objekte von Typ
undefined
1 sind nicht definiert:1 ist Es möglich, neu zu definieren
undefined
, wenn der strikte Modus nicht. Überprüfung mittypeof
oder gegenvoid 0
ist sicherer.var x = 100
als gut.var =
Aufgaben immer undefined zurück.Ihnen definierten
empty_obj
als ein Objekt, das passiert nicht alle Eigenschaften definiert, sondern Sie definiert ist. Aus diesem Grundempty_obj
Ergebnisse in einem truthy-Wert und gibt in der Zuordnung.