JavaScriptの比較演算子の挙動

改めて調べてみた所、面白い動きをするようなので、個人的なまとめ。

以下は、chrome の javaScriptコンソールでの確認

== は型を無視

配列の比較は参照元の比較

配列リレラルを直接==で比較すると必ずfalse(参照元の比較になるため)

大なり(<)小なり(>)などで比較すると内容の比較になる

配列内にオブジェクトが含まれていても比較できるっぽい。

オブジェクトリテラルは直接比較できない

変数に入れた場合は比較可能(参照元比較)

配列の比較が参照元比較になるため、YUI testなどでは以下のテストは失敗する。

YUIのAssert.areEqual – jsdo.it – share JavaScript, HTML5 and CSS

関数やメソッドの戻り値が、配列やオブジェクトの場合areEqualのテストでハマりやすいので注意。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください