1. ホーム
  2. javascript

[解決済み] なぜ2+40が42になるのか?

2022-03-15 09:06:08

質問

同僚がこのJavaScriptのアラート42の行を見せたとき、私は困惑しました。

alert(2+ 40);

マイナス記号のように見えるものは、実は難解なユニコード文字で、明らかに異なる意味を持つことがすぐにわかった。

そのため、なぜこの文字が式のパース時にシンタックスエラーを起こさないのかが不思議でした。また、このような動作をする文字が他にもあるかどうかも知りたい。

解決方法は?

その文字は スペースマーク。 これはスペース文字です。つまり、このコードは次のように等価です。 alert(2+ 40) .

また、このような挙動をするキャラクターが他にもいるのか知りたいです。

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

しかし JavaScript では、識別子に Unicode 文字を使用することもできます。 のような面白い変数名を使用することができます。 ಠ_ಠ .