【问题标题】:Chrome console backslash with numbers带有数字的 Chrome 控制台反斜杠
【发布时间】:2021-08-08 07:45:08
【问题描述】:

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

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

"\0"  - outputs "\u0000"
"\1"  - outputs "\u0001"
"\2"  - outputs "\u0002"
"\3"  - outputs "\u0003"
"\4"  - outputs "\u0004"
"\5"  - outputs "\u0005"
"\6"  - outputs "\u0006"
"\7"  - outputs "\u0007"
"\8"  - outputs "8"        ???
"\9"  - outputs "9"        ???
"\10" - outputs "\b"       
"\11" - outputs "\t"       
"\12" - outputs "\n"       
"\13" - outputs "\u000b"       
"\14" - outputs "\f"       
"\15" - outputs "\r"       
"\16" - outputs "\u000e"       
"\17" - outputs "\u000f"       
"\18" - outputs "\u00018"      
"\19" - outputs "\u00019"       
"\20" - outputs "\u00010"       

【问题讨论】:

    标签: google-chrome console numbers escaping


    【解决方案1】:

    这可能是因为 \8\9 在 javascript 中是 invalid octal escape sequences

    \[0-7]\[0-7][0-7]\[0-7][0-7][0-7] 是八进制转义序列,这在 \10(八进制)== \u0008 (hex/unicode) == \b(退格)处很明显。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 2012-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多