平々毎々 (Hey hey, My my)
rock and roll can never die
2005年3月1日火曜日
JavaScript怖えぇ
下のスクリプトをコピって、URL欄に貼り付けて実行してみる。
javascript:{var n = 0; var s = ""; if (n == s) {alert('0 == ""');}}
これ実行すると「0 == ""」って表示される。数値→文字列 と変換されるかと思ったら逆だった。文字列→数値 と変換されている。だから空文字列が0になるのだった。例えばPerlならeqを使えば文字列だから混乱しないんだけど。
なお、型変換しない比較演算子(===, !==)が用意されているので、意識してそちらを使えば混乱が少ない。
0 件のコメント:
コメントを投稿
次の投稿
前の投稿
ホーム
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿