2014/09/29

JavaScriptの比較演算子について

JavaScriptの比較演算子は2種類ある。
「==」「!=」と「===」「!==」。
「==」「!=」では数値とオブジェクトの比較ができる、というかオブジェクトを数値として比較することが出来る、とかなんとか。
つまり「1 == '1'」はtrueとなる。
またtrueとfalseはそれぞれ「1」と「0」になるようだ。
つまり「1 == true」はtrueとなる。
当然だが「true == 'true'」はfalseとなった。
まぁこんなことは別に覚えなくても問題無い。

何故なら、
比較演算は全部「===」「!==」で書け!ということだから。
JavaやCの比較演算子に相当するのでその辺の言語を書いてた人はJavaScriptの比較演算子は全部「===」「!==」と覚えた方が良い。

数値の1と文字列の"1"が等しいなんてほとんどのプログラマは混乱するはず。
どのみち数値の1と文字列の"1"を比較する場面なんて滅多に無いし、ましてその比較結果としてtrueが欲しい状況なんて99%無いから。
そしてそんな特殊な状況ならしっかりと型変換をしてから「===」で比較しないと難解なコードになるに決まってるから。
大事なことなのでもう一度言うとJavaScriptでは比較演算は全部「===」「!==」で書け。

0 件のコメント:

コメントを投稿