Ist es möglich, in Javascript sowohl auf null als auch auf undefiniert zu prüfen?Wie überprüft man für beide null und undefined in js?
if(_var == null || _var == undefined) {
}
Ist es möglich, in Javascript sowohl auf null als auch auf undefiniert zu prüfen?Wie überprüft man für beide null und undefined in js?
if(_var == null || _var == undefined) {
}
ja
jedoch den Operator == verwendet, ist es nicht necesary. mit foo == null wird auch wahr sein, von foo ist undefiniert. Beachten Sie jedoch, dass undefined und null oder nicht (!) Gleich sind. Es ist, weil das == does coersion foo == null ist auch wahr für foo ist undefiniert.
+1, dies ist der kürzeste Weg, um es zu erreichen, und es ist vollständig in der Spezifikation beschrieben: [The Abstract Equality Comparison Algorithm] (http://bclary.com/2004/11/07/#a-11.9.3) (keine Sorgen über Typenzwang) ... 'if (_var == null) {...}' – CMS
Sie können auch $defined
Funktion in Mootools verwenden (und es muss ein Äquivalent in jquery sein)
In JavaScript (pre ECMAScript 5), undefined
ist keine Konstante, sondern eine globale Variable, und daher ist es möglich, ändere seinen Wert. Deshalb wäre es sicherer sein, den typeof
Operator zu benutzen, um undefined
zu überprüfen:
if (typeof _var === 'undefined') { }
Neben Ihrem Ausdruck eine Reference zurückkehren würde, wenn die Variable _var
nicht deklariert ist. Sie könnten es jedoch immer noch mit dem Operator typeof
wie oben gezeigt testen.
Daher können Sie es vorziehen, die folgende verwenden:
if (typeof _var === 'undefined' || _var === null) { }
Ihr erster Fall ist ein wenig riskant, da _var möglicherweise auf einen anderen falschen Wert als null gesetzt wird. –
@snowlord: Wahr. Ich habe diesen Teil entfernt. –
zum Glück jetzt auf ECMAScript 5, 'undefined' ist eine Eigenschaft des globalen Objekts, die nicht beschreibbar, nicht konfigurierbar (nicht löschbar) und nicht aufzählbar :) – CMS
if (!_var) {
// Code here.
}
Dies sollte, da beide arbeiten undefined
und null
sind Typ false
gezwungen.
Natürlich gibt es das kleine Problem, wenn _var
tatsächlich false
ist, aber es funktioniert, da in den meisten Fällen Sie würden wissen, ob _var
nicht true
ist und kein Objekt.
Beachten Sie, dass es in JavaScript neben "false", "null" und "undefined" noch drei weitere falsche Werte gibt: Eine leere Zeichenfolge "", "0" und "NaN". –
Ich würde beide Ausdrücke wechseln, aber es sollte funktionieren. –
Wenn '_var'' undefiniert' ist, wird der '_var == undefinierte' Ausdruck nie erreicht, weil' _var == null 'die Koerzition eingibt, [wie Pim unten bemerkt] (http://stackoverflow.com/questions/2860058/how-to-check-für-beide-null-und-undefined-in-js/2860063 # 2860063) und 'undefined == null' gibt' true' zurück. Das '_var == null' wird auch auf' undefined' testen, aber ich glaube, dass es nicht generell empfohlen wird, sich auf Typenzerzwingung zu verlassen. –