作为标题
console.log('\\\[' === '\\[');
返回true。
谁能详细解释有什么区别?
答案 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.
,结果为"\\\["
而没有任何错误的原因。尽管那不是我们需要在任何地方使用的方式。
\\
分为两部分:\[
和\
。第一个返回[
,第二个返回\[
。最后是"\\["
。\\
分为两部分:[
和\
。第一个返回[
,第二个返回\[
。最后是The method orElseThrow(() -> {}) is undefined for the type Page<Categories>
。