Javascript `当我们使用模板文本时,use strict`不起作用
如果我将Javascript `当我们使用模板文本时,use strict`不起作用,javascript,template-literals,use-strict,Javascript,Template Literals,Use Strict,如果我将使用strict与backticks/template文本一起括起来,则“使用strict”无法按预期工作。你能分享一下背后的原因吗?是否存在模板文字无法按预期工作的类似异常语句 “使用严格的”; x=3.14;//理想情况下,它应该会导致错误(因为没有定义x)。 警报(x)这是因为规范中明确定义了完全由产品组成的,并将确切的代码点序列限制为“使用严格的”或“使用严格的” 从: A是以A、A或A的首字母s或s出现的最长的s序列,序列中的每个字母完全由一个标记和一个分号组成。分号可以显式
使用strict
与backticks/template文本一起括起来,则“使用strict”无法按预期工作。你能分享一下背后的原因吗?是否存在模板文字无法按预期工作的类似异常语句
“使用严格的”;
x=3.14;//理想情况下,它应该会导致错误(因为没有定义x)。
警报(x)代码>这是因为规范中明确定义了完全由产品组成的,并将确切的代码点序列限制为“使用严格的”
或“使用严格的”
从:
A是以A、A或A的首字母s或s出现的最长的s序列,序列中的每个字母完全由一个标记和一个分号组成。分号可以显式显示,也可以通过自动插入分号来插入。A可以是空序列
A是A中的一个,其是精确的码点序列“使用严格的”
或“使用严格的”
。A不能包含或。
A可以包含多个。但是,如果发生这种情况,实现可能会发出警告
重点补充
另一方面,a与a是完全不同的产品,因此不能成为有效的指令。它就是这样设计的
从:
14.1.1指令序言和使用严格指令
指令序言是ExpressionStatement产品的最长序列,作为FunctionBody、ScriptBody或ModuleBody的初始语句ListItem或ModuleItem产品出现,其中序列中的每个ExpressionStatement完全由StringLiteral标记和分号组成。分号可以显式出现,也可以由插入。指令序言可以是空序列
Use Strict指令是指令序言中的一个表达式语句,其StringLiteral是精确的代码单元序列“Use Strict”
或“Use Strict”
Use Strict指令不能包含转义序列或行连续
指令序言可能包含多个Use Strict指令。但是,如果发生这种情况,实现可能会发出警告
我的
它明确指出,要使Use Strict指令起作用,它必须使用单引号或双引号编写,但不允许使用模板文字。Use string
只是不适用于模板文字我更喜欢模板文字,所以尝试过,在这个特殊的字符串上,它是否有效…当它只是一个简单的字符串时,为什么要使用模板文本?“若要为整个脚本调用严格模式,请将确切的语句“use strict”
(或“use strict”;
)放在任何其他语句之前。”模板文本存在并不意味着您需要将每个字符串文本替换为一个…