◎ֶֶ◎ と ☺ はなぜ有効な JavaScript 変数名ではないのでしょうか? 質問する

◎ֶֶ◎ と ☺ はなぜ有効な JavaScript 変数名ではないのでしょうか? 質問する

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 変数名であるかどうかがわかります。

おすすめ記事