回答:
変数がNULLでないかどうかをテストする方法は次のとおりです。
if (myVar !== null) {...}
myVarがnullでない場合、ブロックが実行されます。myVarが未定義、false、0
またはNaN
その他の場合は、ブロックが実行されます。
("")
や未定義のチェックはしません。参考として私のフィドルを参照してください:jsfiddle.net/b0tm7yaf
この投稿を読んでください:http : //enterprisejquery.com/2010/10/how-good-c-habits-can-encourage-bad-javascript-habits-part-2/
JavaScriptには一般的にいくつかの良いヒントがありますが、ここで言及していることの1つは、nullをチェックする必要があることです。
if(myvar) { }
また、あなたが気付かないかもしれない「偽り」と考えられるものについても触れています。
if(myVar) { code }
、myVar
が以下に等しい場合にのみ実行されません。false, 0, "", null, undefined, NaN
または、変数を定義したことがない場合myVar
(さらに、コードが実行を停止し、例外をスローします)。if(myVar !== null) {code}
、myVar
が等しいnull
か定義されていない場合にのみ実行されません(例外がスローされます)。ここにすべてがあります(src)
もし
==(その否定!=)
===(その否定!==)
私が今遭遇した別の可能なシナリオがあります。
私はajax呼び出しを行い、データを文字列形式でnullとして返しました。私はこのようにそれをチェックしなければなりませんでした:
if(value != 'null'){}
つまり、nullは実際にはnullではなく、「null」を読み取る文字列でした。
編集:私はこれを行うべき方法としてこれを販売していないことを理解する必要があります。これが実行できる唯一の方法であるシナリオがありました。なぜだかわかりません...多分バックエンドを書いた人がデータを正しく提示していなかったかもしれませんが、それにもかかわらず、これは現実です。これが正しくないことを理解している誰かがこれに反対票を投じ、実際に役立つ誰かが反対票を投じているのを見るのはイライラします。
null
文字列と比較するのではなく、値を解析します。
value = JSON.parse(value)
、シンプルで適切なvalue != null
テストを実行してから使用することをお勧めします
もしmyVar
nullは、ブロックが、他の単位を実行しない場合は、それが実行されます、その後です。
if (myVar != null) {...}
'null'
ではなく、特別な値null
。
ここにリストする2つの条件ステートメントは、お互いより優れているわけではありません。使い方は状況によります。ところで、2番目の例では、タイプミスがあります。感嘆符の後に等号が1つだけあるはずです。
最初の例では、myVarの値がtrue かどうかを判断し、{...}内のコードを実行します
2番目の例は、myVarがnullに等しくないかどうかを評価し、そのケースがtrueの場合、{...}内でコードを実行します
より多くのテクニックについては、条件付きステートメントを検討することをお勧めします。それらに慣れたら、いつ必要かを決めることができます。
=
は重要であり、質問に大きな違いをもたらします。おそらくJavaScript に!==
and ===
演算子が存在することに気付いていませんか?