gpt4 book ai didi

JavaScript "\8"文字

转载 作者:行者123 更新时间:2023-11-30 12:05:30 28 4
gpt4 key购买 nike

我正在为 Python 翻译器编写 JavaScript,“\8”和“\9”给我带来了很多问题。根据文档,像“\8”或“\9”这样的东西是非法的,因为它们不是有效的八进制转义符。 Esprima parser在这样的文字上抛出异常。然而 JS 引擎似乎允许它们并且它们分别评估为“8”和“9”。

因此:

/\8/.exec("\8") 
RegExp('\\8').exec('\8')
/\8/.exec("8")
RegExp('\\8').exec('8')

应该都返回匹配项,因为/\8/应该与/8/相同。然而,结果在 JS 引擎之间是不一致的,有些会返回匹配项,而有些则不会(例如 Safari 的)。

所有这些差异的原因是什么?什么是正确的方法 - 如何处理涉及这些文字的其他情况?

最佳答案

You're right that the spec does not allow for it但从来没有人说过 JS 引擎是完美的。

处理这些情况的“正确”方法是将它们报告为语法错误,因为这在 JS 和 Python* 中均无效。

*据我所知。我写的 Python 不多,但写得很快 Googling似乎表明它不是。

关于JavaScript "\8"文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35324136/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com