Aus dem Buch Wartbare JavaScript erwähnt:
%Vor% aber ich fühle% != null
hier ist ziemlich effektiv, filterte sowohl den Fall des Arguments nicht bestanden noch wird es als null übergeben
!= null
ist falsch für undefined
, es bedeutet im Grunde x !== null && x !== undefined
. !=
gibt die Bedingung ein, und einer der Auswirkungen davon ist, dass null
und undefined
als gleichwertig behandelt werden ( null == undefined
ist wahr).
Wenn Sie das nicht möchten, empfehlen einige Leute, !=
nicht mit null
(oder undefined
) zu verwenden.
Und Sie haben recht, dass der Code gegen zwei (und eigentlich drei) Möglichkeiten verteidigt:
Für das Argument wurde überhaupt nichts übergeben.
null
wurde übergeben.
undefined
wurde übergeben.
Aber der Kommentar sagt, es ist ein schlechter Weg, um zu testen, ob ein Argument übergeben wurde, und es ist: Weil es nicht passierte null
oder undefined
. (Die Übergabe in null
und nicht die Übergabe von irgendetwas sind andere Fälle.) Das bedeutet nicht unbedingt, dass es eine schlechte Möglichkeit ist, das Argument für eine bestimmte Funktion zu überprüfen.
Sicher. In Javascript können Sie null
Werte und undefined
Werte haben. Und sie sind nicht gleich. Ein schneller und einfacher Ansatz, um zu überprüfen, ob der Arg gültig ist, wäre wahrscheinlich:
if (arg4)
Und so überprüfen Sie, dass arg4 nicht null, nicht undefiniert und nicht falsch ist. Bitte seien Sie vorsichtig mit dieser letzten Bedingung, Sie können hier bewusst einen falschen Wert angeben: -)
BEARBEITEN: T.J. Crowder ist genau hier. Es ist einfach zu bedienen und wird in den meisten Fällen funktionieren, aber sei vorsichtig.
Weil Sie alles an eine Funktion übergeben können, auch null . Wenn Sie Folgendes tun würden:
%Vor%Sie hätten einen Argument übergeben, aber Ihre Überprüfung würde fehlschlagen, weil die übergebene Referenz null ist. Verwenden Sie immer Folgendes:
%Vor%Tags und Links javascript