なぜ2+40は42になるのでしょうか? 質問する

なぜ2+40は42になるのでしょうか? 質問する

同僚が私にこの JavaScript 警告 42 の行を見せたとき、私は困惑しました。

alert(2+ 40);

すぐに、マイナス記号のように見えるものが、実際には明らかに異なる意味を持つ難解な Unicode 文字であることがわかります。

このため、式を解析したときにその文字が構文エラーを生成しないのはなぜか疑問に思いました。また、このように動作する文字が他にもあるかどうかも知りたいです。

ベストアンサー1

そのキャラクターは「オガムスペースマーク」はスペース文字です。したがって、コードは と同等ですalert(2+ 40)

また、このように振る舞うキャラクターが他にもいるかどうかも知りたいです。

Zsクラスの任意のUnicode文字JavaScriptの空白文字ですしかし、それほど多くはないようです

しかし、JavaScriptでは識別子にUnicode文字も使用できます、これにより、 のような興味深い変数名を使用できますಠ_ಠ

おすすめ記事