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

时间:2018-12-13 06:56:04

标签: javascript

作为标题

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

返回true。

谁能详细解释有什么区别?

3 个答案:

答案 0 :(得分:4)

最多 个字符前的反斜杠将仅被解析为不必要的转义字符-反斜杠将被忽略。这是第一个字符串的第二部分中发生的事情。但是,在某些少量字符之前,例如\\\n中的另一个反斜杠,它将被解析为转义序列\\是单个文字反斜杠的转义序列:

console.log('\\');

并且只有一个字符。

[之前的反斜杠将仅解析为[

console.log('\[');

所以:

'\\\['-文字反斜杠,后跟(不必要的转义)[

'\\['-文字反斜杠,后跟普通的[

有关转义序列的列表,请参见MDN

答案 1 :(得分:0)

在字符串中,反斜杠(\)是用于encode other special characters的特殊字符,包括反斜杠。

'\\['是一个JavaScript字符串文字,包含反斜杠(\\)和方括号([)。在已编译的程序中,字符串为\[

'\\\['是一个JavaScript字符串文字,包含正确编码的反斜杠(\\),后跟字符\[的组合,看起来像一个转义序列,但并不表示任何含义。因为未定义此组合,并且\本身并不代表任何含义,所以JavaScript解释器将忽略反斜杠并更正字符串;它与第一个(\[)相同。

行为是documented

  

对于未在表中列出的字符,将忽略前面的反斜杠,但是不建议使用此用法,应该避免。

答案 2 :(得分:0)

反斜杠是一个特殊字符。从字面上看,JS在console.log("Double \"quotes\" inside another one."); 之后与浏览器对话以解释符号。有时它称为屏蔽或屏蔽。 这就是为什么我们可以这样写:Double "quotes" inside another one.,结果为"\\\["而没有任何错误的原因。尽管那不是我们需要在任何地方使用的方式。

  1. \\分为两部分:\[\。第一个返回[,第二个返回\[。最后是"\\["
  2. \\分为两部分:[\。第一个返回[,第二个返回\[。最后是The method orElseThrow(() -> {}) is undefined for the type Page<Categories>