javascript中反斜杠用于转义字符,必须正确使用:"、'、\、 、 、 等有特定含义;模板字符串不支持x转义;正则需双重转义;es6推荐u{...}和x替代八进制。

JavaScript字符串里的反斜杠()不是随便加的,它专门用来引入转义字符——告诉解释器“后面这个字符别按字面意思理解,要特殊处理”。写错一个反斜杠,轻则字符串出错,重则代码直接报错或逻辑异常。
哪些字符必须用反斜杠转义
在字符串中,有些字符有特殊含义或无法直接输入,必须靠反斜杠“解锁”:
-
"和':在双引号字符串里嵌套双引号,或单引号字符串里嵌套单引号,避免提前结束字符串 -
\:表示一个真正的反斜杠字符(因为反斜杠本身是转义符,要输出它就得“转义自己”) -
:换行符,让文本在控制台或HTML中换行 -
:制表符,插入水平空格(相当于Tab键) -
:回车符,常和组合成(Windows换行标准)
常见误用:多写、少写、写错位置
新手最容易在这三处栽跟头:
- 想显示一个反斜杠却只写一个:
"C:Users"→ 实际变成C:Users(U被当成非法Unicode转义);正确写法是"C:\Users" - 在模板字符串(
`...`)里滥用:` `确实会换行,但`A`不会解析为A(模板字符串不支持十六进制转义,要用u0041) - 正则表达式里双重转义:在字符串字面量中写正则时,反斜杠要“翻倍”,比如匹配数字
d,得写成"\d",因为字符串先吃掉一层,正则引擎才收到真正的d
ES6新增:Unicode与八进制的写法区别
现代JS支持更明确的字符表示方式,减少歧义:
- Unicode转义统一用
u{...}(大括号形式),支持任意码点,如u{1F600}是?;旧式uXXXX只支持4位十六进制 - 八进制转义(如
a)在严格模式下已被禁用,会直接报错;应改用a(十六进制)或u0061(Unicode) - 不推荐用

