根据ECMA-262规范第6版的严格模式,单引号或双引号后的字符串是' \'可能有EscapeSequence或LineTerminatorSequence和EscapeSequence必须是以下之一:CharacterEscapeSequence,0 [lookahead∉DecimalDigit],HexEscapeSequence,UnicodeEscapeSequence(见11.8.4)。 CharacterEscapeSequence可以是SingleEscapeCharacter或NonEscapeCharacter,它不能是EscapeCharacter,而EscapeCharacter包含DecimalDigit。
问题是11.8.4.3中没有任何EscapeCharacter的SV(字符串值)的描述,它只是被称为不是NonEscapeCharacter的东西。
这是否意味着拥有一个' \'然后是DecimalDigit?或者在规范中省略这一点意味着由实现决定如何解释它?
我在不同的引擎上进行了测试,看起来V8,SpiderMonkey和Chakra都返回了SyntaxError for' \'接下来是OctalDigit,其中包含关于八进制数字文字在严格模式下不受支持的消息,并且只返回' \'之后的数字的代码点值。对于不是OctalDigits的DecimalDigits(' \ 8'和' \ 9'分别导致''''''''' / p>
我是否遗漏了规范中的内容?这种行为可以被认为是正确的吗?