Javascript中标识符的Unicode转义序列

时间:2015-08-07 05:30:02

标签: javascript unicode ecmascript-6 ecmascript-5

以下声明有效,

var \u0061 =2; // a  = 2;

但是下面的声明会给出错误,

var \u00A5 = 2; // suppose to be ¥ = 2;

代码点0xA5在BMP平面中,为什么会出现此错误?

2 个答案:

答案 0 :(得分:2)

这与您的转义序列无关,这很好。与¥相比,a不是有效的标识符。 identifier需要以$_,“任何具有Unicode属性”ID_Start“”的Unicode代码点开头,或者其中一个的转义序列以前的。作为货币符号的¥不是这样的特征。

答案 1 :(得分:0)

您正在做的事情相当于:

var a = 2;
var ¥ = 2;

¥不是JavaScript中变量的有效字符。见What characters are valid for JavaScript variable names?