次のように、未定義のパラメータなどをチェックするJavaScriptコードをよく見ます。
if (typeof input !== "undefined") {
// do stuff
}
冗長性は言うまでもなく、型の検索と文字列の比較の両方が含まれるため、これは一種の無駄に思えます。undefined
ただし、名前を変更できるので必要です。
私の質問は次のとおり
です。そのコードはこのアプローチよりも優れています:
if (null != input) {
// do stuff
}
私の知る限り、を再定義することはできないnull
ため、予期せず壊れることはありません。そして、!=
演算子の型強制のため、これはundefined
andとnull
...の両方をチェックします。これは、多くの場合、まさに必要なものです(たとえば、オプションの関数パラメーター)。
しかし、このフォームは広く普及していないようであり、JSLintが邪悪な!=
演算子を使用していることを怒鳴る原因にもなります。
なぜこれが悪いスタイルと考えられているのですか?
typeof
識別子を以前に宣言したことがないため、より安全です。
if(typeof neverDeclared === "undefined") // no errors
if(neverDeclared === null) // throws ReferenceError: neverDeclared is not defined
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加