typeof!== "未定義"と!= null

Derek Thurn:

次のように、未定義のパラメータなどをチェックするJavaScriptコードをよく見ます。

if (typeof input !== "undefined") {
    // do stuff
}

冗長性は言うまでもなく、型の検索と文字列の比較の両方が含まれるため、これは一種の無駄に思えます。undefinedただし、名前を変更できるので必要です。

私の質問は次のとおり
です。そのコードはこのアプローチよりも優れています:

if (null != input) {
    // do stuff
}

私の知る限り、を再定義することはできないnullため、予期せず壊れることはありません。そして、!=演算子の型強制のため、これはundefinedandとnull...の両方チェックします。これは、多くの場合、まさに必要なものです(たとえば、オプションの関数パラメーター)。

しかし、このフォームは広く普及していないようであり、JSLintが邪悪な!=演算子を使用していることを怒鳴る原因にもなります

なぜこれが悪いスタイルと考えられているのですか?

seanmonstar:

typeof 識別子を以前に宣言したことがないため、より安全です。

if(typeof neverDeclared === "undefined") // no errors

if(neverDeclared === null) // throws ReferenceError: neverDeclared is not defined

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

nullと未定義を区別する

分類Dev

変数===未定義vs typeof変数=== "未定義"

分類Dev

Javascriptの未定義変数:typeofとnotexistの違い

分類Dev

Nashornのnull値と未定義値が異なる

分類Dev

nullと未定義の一貫性のない比較

分類Dev

nullと未定義のJavascriptメモリへの影響

分類Dev

Dartで未定義とnullを区別する

分類Dev

TypeScript-null対未定義

分類Dev

関数値/名前のtypeof値は、「未定義」としてログに記録されます。どうして?

分類Dev

JavaScriptによるnullと未定義の比較、および==と===の違い

分類Dev

ジャスミン:マッチャーが未定義とは異なり、nullとは異なる(!=未定義および!= null)

分類Dev

localStorageが大文字と小文字がnullで未定義の文字列値を返す理由

分類Dev

axとaxを削除=未定義

分類Dev

複数の宣言と未定義

分類Dev

未定義の参照-VTKとmake

分類Dev

未定義と未定義がJavascriptのNanに等しい理由

分類Dev

TypeError:「未定義」または「null」と一致することはできません

分類Dev

Javaで「null」を逆参照するときに未定義の動作を生成することは可能ですか?

分類Dev

データ属性を取得しようとするとJavaScriptがNULL /未定義を返す

分類Dev

AngularJS未定義、nullおよび0

分類Dev

JSONが未定義またはnull

分類Dev

typeofウィンドウのテストケースが未定義

分類Dev

lodashを使用してオブジェクトから未定義値とnull値を削除する方法は?

分類Dev

JavaScript変数をnullに設定しますか、それとも未定義のままにしますか?

分類Dev

lodashを使用してオブジェクトから未定義値とnull値を削除する方法は?

分類Dev

%pを使用してnullポインターを印刷することは未定義の動作ですか?

分類Dev

JavaScriptで未定義変数とnull変数の両方をチェックする方法は?

分類Dev

フロー:文字列がnull /未定義であると文句を言うのはなぜですか?

分類Dev

AssertionError:ターゲットをnullまたは未定義にすることはできません

Related 関連記事

  1. 1

    nullと未定義を区別する

  2. 2

    変数===未定義vs typeof変数=== "未定義"

  3. 3

    Javascriptの未定義変数:typeofとnotexistの違い

  4. 4

    Nashornのnull値と未定義値が異なる

  5. 5

    nullと未定義の一貫性のない比較

  6. 6

    nullと未定義のJavascriptメモリへの影響

  7. 7

    Dartで未定義とnullを区別する

  8. 8

    TypeScript-null対未定義

  9. 9

    関数値/名前のtypeof値は、「未定義」としてログに記録されます。どうして?

  10. 10

    JavaScriptによるnullと未定義の比較、および==と===の違い

  11. 11

    ジャスミン:マッチャーが未定義とは異なり、nullとは異なる(!=未定義および!= null)

  12. 12

    localStorageが大文字と小文字がnullで未定義の文字列値を返す理由

  13. 13

    axとaxを削除=未定義

  14. 14

    複数の宣言と未定義

  15. 15

    未定義の参照-VTKとmake

  16. 16

    未定義と未定義がJavascriptのNanに等しい理由

  17. 17

    TypeError:「未定義」または「null」と一致することはできません

  18. 18

    Javaで「null」を逆参照するときに未定義の動作を生成することは可能ですか?

  19. 19

    データ属性を取得しようとするとJavaScriptがNULL /未定義を返す

  20. 20

    AngularJS未定義、nullおよび0

  21. 21

    JSONが未定義またはnull

  22. 22

    typeofウィンドウのテストケースが未定義

  23. 23

    lodashを使用してオブジェクトから未定義値とnull値を削除する方法は?

  24. 24

    JavaScript変数をnullに設定しますか、それとも未定義のままにしますか?

  25. 25

    lodashを使用してオブジェクトから未定義値とnull値を削除する方法は?

  26. 26

    %pを使用してnullポインターを印刷することは未定義の動作ですか?

  27. 27

    JavaScriptで未定義変数とnull変数の両方をチェックする方法は?

  28. 28

    フロー:文字列がnull /未定義であると文句を言うのはなぜですか?

  29. 29

    AssertionError:ターゲットをnullまたは未定義にすることはできません

ホットタグ

アーカイブ