Ich sehe oft JavaScript-Code, der auf diese Weise auf undefinierte Parameter usw. prüft:
if (typeof input !== "undefined") {
// do stuff
}
Dies scheint etwas verschwenderisch zu sein, da es sowohl eine Typsuche als auch einen String-Vergleich beinhaltet, ganz zu schweigen von der Ausführlichkeit. Es ist notwendig, weil undefined
könnte jedoch umbenannt werden.
Meine Frage ist:
Was ist an diesem Code besser als an diesem Ansatz?
if (null != input) {
// do stuff
}
Soweit ich weiß, kann man nicht umdefinieren null
damit es nicht unerwartet zu einem Bruch kommt. Und wegen des Typ-Zwangs der !=
Operator, der sowohl auf undefined
y null
... was oft genau das ist, was Sie wollen (z.B. für optionale Funktionsparameter).
Dennoch scheint diese Form nicht weit verbreitet zu sein, und sie führt sogar dazu, dass JSLint Sie anschreit, weil Sie das böse !=
Betreiber.
Warum wird dies als schlechter Stil angesehen?