Javascript 今日の発見

true

("foo")==("foo");
(String("foo"))==(String("foo"));
(1)==(1);
(Number(1))==(Number(1));

false

(new String("foo"))==(new String("foo"));
(new Number(1))==(new Number(1));
(["foo"])==(["foo"]);
({"foo":"bar"})==({"foo":"bar"});
(document.createElement("p"))==(document.createElement("p"));

仮説

リテラルとオブジェクトの違い?

追記

ちなみにrubyだと↓でtrue。

a=Hash["foo"=>"bar"]
b=Hash["foo"=>"bar"]
a==b


全部trueになるもんかと思ってた。false返すのは===のときだけじゃないんだ・・・。っていうか===の出番って限りなく少ない?最近サイ本めくる余裕すらないなー・・。(主に精神に)