Internet Explorer では (残念ながら、私がテストした他のブラウザではそうではありませんでしたが)、いくつかの Unicode 変数名を使用できることに気付きました。これは私にとってとても嬉しいことで、次のような楽しい Unicode 満載のコードを書けることにとても満足しました。
var ктоείναι草泥马 = "You dirty horse.",
happy☺n☺mat☺p☺eia = ":)Yay!",
ಠ_ಠ = "emoticon";
alert(ктоείναι草泥马 + happy☺n☺mat☺p☺eia + ಠ_ಠ);
ただし、何らかの理由で、、◎ܫ◎
および♨_♨
は☺
有効な変数名ではありません。
なぜಠ_ಠ
そして草泥马
動作しますが、動作しません◎ܫ◎
、♨_♨
または☺
?
ベストアンサー1
ಠ_ಠと草泥马には、実際のアルファベットで使用される「文字」のみが含まれています。つまり、ಠはカンナダ語アルファベット、草泥马は漢字で構成されています。
ただし、◎ と ☺ は単なる記号であり、どのアルファベットとも関連付けられていません。
のECMAScript 標準、第 7.6 章(Internet Explorer を除くすべてのブラウザが従っている) では、識別子は次のいずれかで始まる必要があると規定されています。
- ユニコード文字
$
または_
\
Unicode エスケープ シーケンスが続きます。
識別子の次の文字は次のいずれかである必要があります。
- 先頭に使用できる文字
- Unicodeの結合記号
- ユニコード数字
- Unicodeコネクタ句読点
- ゼロ幅の非結合子
- ゼロ幅ジョイナー
IE は標準を超えて、☺ などの一部の記号を許可するほど寛容です。
そこには道具入力した文字列が ECMAScript 5.1 および Unicode 6.1 に準拠した有効な JavaScript 変数名であるかどうかがわかります。