有效的特殊字符 ↂ 作为变量名 - Safari/iOS 时出错

Valid special character ↂ as variable name - error on Safari/iOS

我使用特殊字符 ↂ 作为 JS 变量名来命名我的框架。根据 ES5 和 ES6 的规范,它应该是有效的(它在 Unicode 组 'Number, Letter' (http://www.fileformat.info/info/unicode/category/Nl/list.htm))

在 iOS Safari 上,但是这给出了错误:SyntaxError: Invalid character '\u8578'。这看起来很奇怪,因为该字符代码似乎是一个汉字:http://www.fileformat.info/info/unicode/char/8578/index.htm

因此下面的代码片段不适用于 iOS Safari(尚未测试桌面 Safari)

<script>
  var ↂ = 5;
  alert(ↂ);
</script>

我尝试在脚本标签上为 charset="..." 设置一些值,但这没有帮助

  1. 为什么 iOS Safari 不接受即使在 ES5 中也应该有效的 ↂ?
  2. 有没有办法在不出现错误的情况下使用 ↂ?

请不要回复 'It is bad practice to use special characters in JS' 等未经询问的建议。大家的意见我都知道了,请大家保密

我会回答我自己的问题。显然,并非所有现代浏览器都遵循 ES5/ES6 允许字符的规范。我写了一个有用的代码片段,它会告诉你哪些变量名在 current 浏览器中有效:

var allowed = '';

function check() {
  var char = String.fromCharCode(i);
  if (char.length) {
    try {
      eval("var " + char + "=1;");
      allowed += char + ' ';
    } catch (e) {}
  }
}
for (var i = 0; i <= 15000; i++) {
  check(i);
}
document.body.innerHTML = allowed;

也在 JSFiddle 上:https://jsfiddle.net/9539cc7q/

根据您的喜好提高最大字符代码(现在为 15000),然后代码会 运行 更长

当运行在Safari上我们确实可以看到不允许使用ↂ符号