339

変数が ではないかどうかを確認する JavaScript の 2 つの方法を以下に示しますが、どちらnullを使用するのがベスト プラクティスであるか混乱しています。

私はすべきですか:

if (myVar) {...}

また

if (myVar !== null) {...}
4

9 に答える 9

458

それらは同等ではありません。1 つ目は、is trueyifの場合(つまり、条件付きで評価される場合) に続くブロックを実行し、2 つ目は、が 以外の値である場合にブロックを実行します。myVartruemyVarnull

JavaScript で真実ではない唯一の値は次のとおりです (別名値):

  • null
  • undefined
  • 0
  • ""(空の文字列)
  • false
  • NaN
于 2010-12-05T22:22:03.313 に答える
86

変数が NULL でないかどうかをテストする方法は次のとおりです。

if (myVar !== null) {...}

ブロックは、myVar が null でない場合に実行されます。myVar が undefined または false または0その他の場合に実行されNaNます。

于 2010-12-05T22:33:48.777 に答える
52

この投稿を読んでください: http://enterprisejquery.com/2010/10/how-good-c-habits-can-encourage-bad-javascript-habits-part-2/

一般的にJavaScriptに関するいくつかの素晴らしいヒントがありますが、言及されていることの1つは、次のようにnullをチェックする必要があることです。

if(myvar) { }

また、あなたが気付かないかもしれない「虚偽」と見なされるものについても言及しています。

于 2010-12-05T22:22:24.670 に答える
45
  • あなたの中のコードは、が等しいif(myVar) { code }場合にのみ実行されません:または変数を定義したことがない(さらに、コードは実行を停止し、例外をスローします)。myVarfalse, 0, "", null, undefined, NaNmyVar
  • あなたの中のコードは、等しい場合、または定義したことがないif(myVar !== null) {code}場合にのみ実行されません(例外をスローします)。myVarnull

ここにすべてがあります ( src )

もしも

ここに画像の説明を入力

== (その否定!= )

ここに画像の説明を入力

=== (その否定!== )

ここに画像の説明を入力

于 2019-04-18T13:32:50.300 に答える
10

私が遭遇した別の可能なシナリオがあります。

私は ajax 呼び出しを行い、データを文字列形式で null として返しました。次のように確認する必要がありました。

if(value != 'null'){}

したがって、null は、実際には null ではなく、"null" と読み取られる文字列でした。

編集:これを行うべき方法として販売していないことを理解する必要があります。これが唯一の方法であるというシナリオがありました。理由はわかりません...おそらくバックエンドを書いた人がデータを間違って提示していたのでしょうが、とにかく、これは現実です。これが正しくないことを理解している人によって反対票を投じられ、実際に役立つ誰かによって賛成票を投じられるのを見るのはイライラします.

于 2014-10-12T22:56:49.423 に答える
-4

ここにリストした 2 つの条件ステートメントは、互いに優れているわけではありません。使い方は状況によって異なります。ちなみに、2番目の例にはタイプミスがあります。感嘆符の後に等号を 1 つだけ付ける必要があります。

最初の例では、myVarの値が true かどうかを判断し、{...}内のコードを実行します。

2 番目の例では、 myVarが null と等しくないかどうかを評価し、その場合が true の場合、{...}内でコードを実行します。

より多くのテクニックについては、条件ステートメントを調べることをお勧めします。それらに慣れたら、いつそれらが必要になるかを判断できます。

于 2010-12-05T22:27:37.370 に答える