代码之家  ›  专栏  ›  技术社区  ›  Johnny Chen

为什么“\\[”等于“\\[”?反斜杠在字符串中是如何工作的?

  •  1
  • Johnny Chen  · 技术社区  · 7 年前

    作为标题

    console.log('\\\[' === '\\[');

    返回true。

    有人能详细解释一下有什么区别吗?

    3 回复  |  直到 7 年前
        1
  •  4
  •   CertainPerformance    7 年前

    前面的反斜杠 字符将仅作为不必要的转义字符进行分析-反斜杠将被忽略。这是第一个字符串的第二部分发生的事情。在某种程度上 很少的 字符,例如中的另一个反斜杠 \\ \n 逃逸序列 \\ 是单个文字反斜杠的转义序列:

    console.log('\\');

    而且只有一个字符。

    前斜杠 [ ,但:

    console.log('\[');

    因此:

    '\\\['

    '\\['

    看见 MDN

        2
  •  0
  •   axiac    7 年前

    在字符串中,反斜杠( \ )是一个用来 encode other special characters

    '\\[' 是包含反斜杠的JavaScript字符串文字( \\ [ ).在已编译程序中,字符串为 \[ .

    '\\\[' 是包含正确编码的反斜杠的JavaScript字符串文字( \\ \[ 这看起来像是一个逃跑序列,但并不意味着什么。因为这个组合没有定义和定义 \ JavaScript解释器本身并不意味着什么,它忽略反斜杠并更正字符串;它与第一个相同( \[ ).

    这种行为是错误的 documented :

        3
  •  0
  •   Nick_Rimer    7 年前

    反斜杠是一种特殊字符。从字面上看,JS在完成后与浏览器对话以解释符号 \ . 有时它叫屏蔽或屏蔽。 console.log("Double \"quotes\" inside another one."); 由于 Double "quotes" inside another one.

    1. "\\\[" 分为两部分: \\ \[ \ [ . 最后是 \[ .
    2. "\\[" \\ [ . 第一次返回 \ [ \[