Was ist genau der Unterschied zwischen undefined
und void 0
?
Welches wird bevorzugt und warum?
Was ist genau der Unterschied zwischen undefined
und void 0
?
Welches wird bevorzugt und warum?
undefined
hat eine normale Variablen-Semantik, die selbst der Strict-Modus nicht beheben kann und erfordert eine Laufzeit-Suche. Es kann wie jede andere Variable überschattet werden, und die standardmäßige globale Variable undefined
ist in ES3 nicht schreibgeschützt.
void 0
ist effektiv eine zu kompilierende konstante Schutzmaßnahme für undefined
ohne Suchanforderungen. Es ist ähnlich wie das Schreiben von null
oder true
, anstatt den Wert einer Variablen nachzuschlagen. Es funktioniert sofort, ohne Sicherheitsargumente, und ist kürzer zu schreiben. Es ist in jeder Hinsicht besser.
Klammern sind hier optional, void 0
, void(0)
und void (0)
sind äquivalent. Das void
ist ein unärer Operator mit rechts-nach-links Assoziativität, daher wird der Wert rechts davon platziert:
void
.
Für die zweite Frage müssen Sie undefined
direkt verwenden, um eine unnötige Operandenauswertung zu vermeiden und den gleichen undefined
-Wert abzurufen.
Weitere Informationen finden Sie unter: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/void
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.