2012-03-23 12 views
2

undefined == variablevariable == undefinedの違いはどちらも同じですか? undefined === variableまたはtypeof variable == 'undefined'の場合、どう違うのですか?JavaScript等価演算子

誰かが、それはあなたが言及した部分の異なる順序に来る意味での違いはありません

+0

すべてが同じであり、かなり確信しています。変数が定義されていないかどうかを確認するには、 "variable === undefined"を使用します。変数にデータが含まれているかどうかをチェックするには、 "if(variable)"を使用します。これは "if(variable!== undefined && variable!== null)"と同じです。 ==の代わりに常に===を使用する必要があります。 ==を使用すると、暗黙のうちに型変換が行われます。 1 == "1" =真、1 === "1" =偽。 –

答えて

1

未定義の変数をテストするのにundefinedを使用しないでください。代わりにtypeof演算子を使用してください。

undefinedは、JavaScriptのキーワードではありません。それは単なる可変名です。誰かがvar undefined = trueをコードのどこにでも書き込むと、すべての比較が予期しない動作をします。

JSLINTまたはJSHINTのようなものを使用して、JavaScriptコードでこれらのタイプのエラーを回避することを検討する必要があります。

それ以外は、私が読んだ方法で、まず比較パラメータを書きます。 If the variable foo is undefined thanif (typeof foo === "undefined")

私はこのパターンの名前を覚えていないように記述しなければならない理由ですが、私は1 :)

1

を私を助けることができます。

===は厳密な比較であり、==ではありません。たとえば、undefined == falseはtrueですが、undefined === falseはtrueです。未定義型のチェックは、この場合の厳密な比較に似ています。

0

undefined == variableおよびvariable == undefinedは同じです。

=variable = undefined)が見つからない場合は、奇妙な行動を防ぐためにundefined == variableをご記入ください。

undefined === variableおよびtypeof variable == 'undefined'も同じである必要があります。

+5

私はあなたの推薦に同意しません。順序は大丈夫ですが、場合によっては、undefinedの元の値を上書きすることは可能です(新しいES5ではこの変数を読み取り専用にします)。 – Tadeck

+1

このようにコードを書くことが推奨されていますが、 'undefined'はjsに書き換えられる可能性があるため、この場合は動作しません。 'undefined'を上書きすると、さらに奇妙な動作につながります。私は 'typeof'でオプションを好む。 – kirilloid

+0

ああ、それを知らなかった。ありがとう:) – Shylux

関連する問題