2005年3月1日火曜日

JavaScript怖えぇ

下のスクリプトをコピって、URL欄に貼り付けて実行してみる。
javascript:{var n = 0; var s = ""; if (n == s) {alert('0 == ""');}}

これ実行すると「0 == ""」って表示される。数値→文字列 と変換されるかと思ったら逆だった。文字列→数値 と変換されている。だから空文字列が0になるのだった。例えばPerlならeqを使えば文字列だから混乱しないんだけど。
なお、型変換しない比較演算子(===, !==)が用意されているので、意識してそちらを使えば混乱が少ない。

0 件のコメント:

コメントを投稿