Ich sehe oft JavaScript-Code, der auf folgende Weise nach undefinierten Parametern usw. sucht:
if (typeof input !== "undefined") {
// do stuff
}
Dies scheint etwas verschwenderisch zu sein, da es sowohl eine Typensuche als auch einen Zeichenfolgenvergleich beinhaltet, ganz zu schweigen von seiner Ausführlichkeit. Es wird benötigt, weil undefined
es jedoch umbenannt werden könnte.
Meine Frage ist:
Wie ist dieser Code besser als dieser Ansatz:
if (null != input) {
// do stuff
}
Soweit ich weiß, können Sie nicht neu definieren null
, damit es nicht unerwartet kaputt geht. Und aufgrund des Typzwangs des !=
Operators wird sowohl nach undefined
als auch nach null
... gesucht, was häufig genau das ist, was Sie möchten (z. B. für optionale Funktionsparameter).
Diese Form scheint jedoch nicht weit verbreitet zu sein, und JSLint schreit Sie sogar an, weil Sie den bösen !=
Operator verwendet haben.
Warum wird das als schlechter Stil angesehen?
if (null != input)
ist nur "Yoda Speak" für den englischen Sprecher (von einem bin ich ... uuammmmm). Wenn sie also dem gleichen entsprechen, ist es wirklich nur Semantik. MEINER BESCHEIDENEN MEINUNG NACH.