Chrome 带数字的控制台反斜杠

Chrome console backslash with numbers

为什么 chrome 控制台将以反斜杠开头的数字转换为 unicode,或者在某些情况下转换为特殊字符,如“\b、\t、\f”等?在 \8 和 \9 的情况下,它甚至只返回数字本身?这背后的逻辑是什么?

您可以通过在 chrome 中打开控制台并输入字符串来测试它。 以下是一些示例:

"[=11=]"  - outputs "\u0000"
""  - outputs "\u0001"
""  - outputs "\u0002"
""  - outputs "\u0003"
""  - outputs "\u0004"
""  - outputs "\u0005"
""  - outputs "\u0006"
""  - outputs "\u0007"
""  - outputs "8"        ???
""  - outputs "9"        ???
"" - outputs "\b"       
"" - outputs "\t"       
"" - outputs "\n"       
"" - outputs "\u000b"       
"" - outputs "\f"       
"" - outputs "\r"       
"" - outputs "\u000e"       
"" - outputs "\u000f"       
"" - outputs "\u00018"      
"" - outputs "\u00019"       
"" - outputs "\u00010"       

这可能是因为 </code> 和 <code> 在 javascript 中是 invalid octal escape sequences

\[0-7]\[0-7][0-7]\[0-7][0-7][0-7]是八进制转义序列,在</code>(八进制)处很明显 == <a href="https://unicode-explorer.com/c/0008" rel="nofollow noreferrer"><code>\u0008 (hex/unicode) == \b(退格键)。

对我来说,奇怪的是 没有被视为无效的八进制转义序列,而是被视为十六进制...