Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript unicode转义在let关键字中有效吗_Javascript_Ecmascript 6_Language Lawyer - Fatal编程技术网

Javascript unicode转义在let关键字中有效吗

Javascript unicode转义在let关键字中有效吗,javascript,ecmascript-6,language-lawyer,Javascript,Ecmascript 6,Language Lawyer,在let关键字中使用unicode转义序列有效吗 重新启动:以下代码有效吗 l\u0065t a = 1; 是否等同于此代码: let a = 1; 否 ECMAScript确实允许字符串文本、模板文本和正则表达式文本中的Unicode转义序列(到目前为止是预期的),以及()。然而,它不允许它们出现在1中,因此它们不能形成诸如关键字、其他标记和空格之类的内容 (自ES5以来,这一点没有改变。您也不允许,并且将继续不允许,在var中使用转义序列) 1:当然,我们可以想象一个解释任何东西(包括转

let
关键字中使用unicode转义序列有效吗

重新启动:以下代码有效吗

l\u0065t a = 1;
是否等同于此代码:

let a = 1;

ECMAScript确实允许字符串文本、模板文本和正则表达式文本中的Unicode转义序列(到目前为止是预期的),以及()。然而,它不允许它们出现在1中,因此它们不能形成诸如关键字、其他标记和空格之类的内容

(自ES5以来,这一点没有改变。您也不允许,并且将继续不允许,在
var
中使用转义序列)

1:当然,我们可以想象一个解释任何东西(包括转义字符)的实现来派生源文本2,但这将是a)奇怪的,b)超出ECMAScript的范围。考虑通过
JSON.parse
eval
传递一个字符串-这样的字符串也可能包含
l\u0065t


2:像这样的一个实际例子(实际上是有意义的)是
标记中的HTML实体。

为什么不试试呢?@PedroLobito这是一个语言律师的问题。实现可能是错误的。该标准在这方面似乎有点含糊不清
let
不在保留字语法中。google chrome中的V8说它是无效的。如果你在Firefox中尝试这个,你会得到
SyntaxError:关键字必须按字面意思写,没有嵌入转义符
我会把你的例子改成ES5中不是保留字的东西。该标准明确规定,保留字中不允许使用转义序列。@programmerjake:是吗?我错过了,你能指给我看吗?见11.6.2@Programmer中的注释杰克:哦,对了,我看了。在我看来,所有的标记都必须是各自源字符的文字序列是隐含的。@programmerjake:这就提出了一个问题,
var v\u0061r
是否有效,如果
v\u0061r
严格来说不是标识符中禁止的保留字:-),我想它们实际上意味着标识符的字符串值中不允许保留字。