indexOf()反斜杠返回-1 javascript
为什么使用javascriptindexOf()反斜杠返回-1 javascript,javascript,indexof,backslash,Javascript,Indexof,Backslash,为什么使用javascript 'aaaaa\bb'.indexOf('\\') 返回 -1 我期望5个,但b我得到了。它实际上并没有将反斜杠作为符号来读取,而是将其作为转义字符来读取?解析字符串常量时,搜索字符串中的反斜杠('aaaaa\bb')消失;JavaScript解析器总是读取字符串常量中的单个反斜杠作为转义。必须将其加倍,就像传递给.indexOf()的字符串一样 在您的例子中,\b是退格控制字符的转义。即使是像\q这样的非“特殊”字符,反斜杠也基本上被忽略。正如前面所说的,Java
'aaaaa\bb'.indexOf('\\')
返回
-1
我期望5个,但b我得到了。它实际上并没有将反斜杠作为符号来读取,而是将其作为转义字符来读取?解析字符串常量时,搜索字符串中的反斜杠(
'aaaaa\bb'
)消失;JavaScript解析器总是读取字符串常量中的单个反斜杠作为转义。必须将其加倍,就像传递给.indexOf()
的字符串一样
在您的例子中,
\b
是退格控制字符的转义。即使是像\q
这样的非“特殊”字符,反斜杠也基本上被忽略。正如前面所说的,Javascript解析器将其解释为控制字符。
如果使用排列语法创建数组,将得到一个\b
作为单个元素,而不是两个元素\
和b
str='aaaaa\bb';
log([…str])
这是因为\b
表示退格控制字符,在console.log
字符串时被忽略。
const str='1234\bb';
console.log(str)代码>因为它必须是“aaaaa\\bb”\b
是一个BackspaceBecause\b转义b。