Javascript 中标识符的 Unicode 转义序列
Unicode escape sequence for identifiers in Javascript
以下声明有效,
var \u0061 =2; // a = 2;
但是下面声明报错,
var \u00A5 = 2; // suppose to be ¥ = 2;
代码点0xA5
在BMP平面,为什么会报错?
这与你的转义序列无关,没关系。只是 ¥
不是有效标识符,与 a
相反。作为货币符号的 identifier needs to start with $
, _
, "any Unicode code point with the Unicode property “ID_Start”", or an escape sequence for one of the previous. ¥ 不是这样的字符。
你所做的等同于:
var a = 2;
var ¥ = 2;
¥
不是 JavaScript 中变量的有效字符。参见 What characters are valid for JavaScript variable names?
以下声明有效,
var \u0061 =2; // a = 2;
但是下面声明报错,
var \u00A5 = 2; // suppose to be ¥ = 2;
代码点0xA5
在BMP平面,为什么会报错?
这与你的转义序列无关,没关系。只是 ¥
不是有效标识符,与 a
相反。作为货币符号的 identifier needs to start with $
, _
, "any Unicode code point with the Unicode property “ID_Start”", or an escape sequence for one of the previous. ¥ 不是这样的字符。
你所做的等同于:
var a = 2;
var ¥ = 2;
¥
不是 JavaScript 中变量的有效字符。参见 What characters are valid for JavaScript variable names?