2016-10-04 10 views
2

誰かこの比較文を説明できますか? 私は& &と比較する方法を理解しています。しかし、1つのライナーは、以下JavaScript比較ステートメント

typeof(varName) === 'undefined' == 0 
+1

どこにそのコードがから来るのでしょうか?それはひどいので。私はそれが栄養失調のようなものを期待するかもしれませんが、それは間違いなく縮小されていません。 – vlaz

+0

これを見てください:http://www.w3schools.com/js/js_comparisons.asp – Sparrow

+0

とにかく 'type varName ===" undefined'(大括弧は余分で不要です)は、 'varName'が' undefined'であるかどうかをチェックします。それから、_that_の結果はゼロに対して緩やかにチェックされます。これは 'false'のチェックと同じです。 – vlaz

答えて

4

何か他のものがvarNameが未定義であると言うことができますし。コードのあなたの行は、(それぞれの新しい行が次のステップです)、これらのステップを経る:

typeof(varName) === 'undefined' == 0 
typeof(5) === 'undefined' == 0 
'number' === 'undefined' == 0 
false == 0 
true 

これは悪いコードです:

typeof(varName) === 'undefined' == 0 
typeof(undefined) === 'undefined' == 0 
'undefined' === 'undefined' == 0 
true == 0 
false 

varName5に等しいと定義されていることを言うことができます。あなたは上記の式はまた

!(typeof(varName) === 'undefined') 

代わりない演算子(!)彼らは== 0を使用しているを使用してのように書くことができtypeof(varName) !== 'undefined'

+0

説明してくれてありがとう –

0
typeof(varName) === 'undefined' == 0 

と同じ結果を得ることができます。しかし、===0を実行すると、データ型もチェックされ、常にfalseが返されるため、機能しません。

例:

true == 0 => false 
false == 0 => true 

しかし、あなたは===

true === 0 => false 
false === 0 => false 

注意を使用する場合:typeof(varName) === 'undefined' == 0はそれを行うには悪い方法です。

使用しないオペレータ:

!(typeof(varName) === 'undefined')