誰かこの比較文を説明できますか? 私は& &と比較する方法を理解しています。しかし、1つのライナーは、以下JavaScript比較ステートメント
typeof(varName) === 'undefined' == 0
誰かこの比較文を説明できますか? 私は& &と比較する方法を理解しています。しかし、1つのライナーは、以下JavaScript比較ステートメント
typeof(varName) === 'undefined' == 0
何か他のものが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
今varName
が5
に等しいと定義されていることを言うことができます。あなたは上記の式はまた
!(typeof(varName) === 'undefined')
代わりない演算子(!
)彼らは== 0
を使用しているを使用してのように書くことができtypeof(varName) !== 'undefined'
説明してくれてありがとう –
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')
どこにそのコードがから来るのでしょうか?それはひどいので。私はそれが栄養失調のようなものを期待するかもしれませんが、それは間違いなく縮小されていません。 – vlaz
これを見てください:http://www.w3schools.com/js/js_comparisons.asp – Sparrow
とにかく 'type varName ===" undefined'(大括弧は余分で不要です)は、 'varName'が' undefined'であるかどうかをチェックします。それから、_that_の結果はゼロに対して緩やかにチェックされます。これは 'false'のチェックと同じです。 – vlaz