練炭ブログ

萌え壁紙、Irvine、DMonkey、Proxomitron などの情報を扱ってます。

DMonkey: boolean と文字列の比較結果

コメントなし»

true == 'true'true == '1' が真、それ以外は偽('True' とか '2' も偽)。

false == 'false'false == '0' が真、それ以外は偽。

new Boolean ('string') の挙動も調べてマニュアルに書き加えておいた方がいいかも知れない。

DMonkey: 変数と代入結果の比較

2 個のコメント»
var a = 1;
alert (a == (a = 2));
a = 1;
alert ((a = 2) == a);

IE8、Firefox 12、Google Chrome 19 では false, true となりますが、DMonkey では逆で true, false になります。

そもそも ECMAScript においてこの式の結果が保証されているのか、未定義や不定や実装依存だったりするのか詳しい人教えてぷりーず。

仮に ECMAScript で正当な式であっても、DMonkey では結果が違うし規格書もないから調べることすら出来ないしで、DMonkey では怪しげな表現は使わない方がいいですね。

ちなみに JavaScript で数値の文字列を3桁区切りに変換するコードで

while (a != (a = ~));

というパターンが使われているのを見かけました。

見かけたっていうか移植しようとしてこの違いに気がついた訳ですが。