javascript字符串中反斜杠开头的序列为转义字符,是解析器识别并替换的语法机制;常见有 、 、 、、'、"、`,unicode支持uxxxx和u{x…},引号嵌套优先选匹配类型,非法转义在非模板字符串中被忽略、模板字符串中报错。

JavaScript 字符串里用反斜杠 开头的序列就是转义字符,用来表示那些没法直接敲出来、或者有特殊含义的符号。它不是“加个斜杠就完事”,而是 JS 解析器在读代码时就识别并替换成对应字符的语法机制。
常见基础转义字符
这些是最常遇到的,作用清晰,写法固定:
- :换行符(Line Feed),让文字从下一行开始显示
- :回车符(Carriage Return),Windows 换行常用 组合
- :制表符(Tab),相当于按一次 Tab 键,产生缩进效果
- \:一个真正的反斜杠字符
- ':单引号 ',在单引号包裹的字符串中使用,比如 'It's OK'
- ":双引号 ",在双引号包裹的字符串中使用,比如 "He said "Hi""
- `:反引号 `,只在模板字符串中需要转义,比如 `Backtick: ``
Unicode 转义:支持更多字符
当你要插入某个特定 Unicode 字符(比如 emoji、数学符号、古文字),可以用 Unicode 编码方式:
- uXXXX:4 位十六进制,例如 u03A9 是希腊大写字母 Ω
- u{X...}:ES2015+ 支持任意长度,适合超出基本多文种平面的字符,例如 u{1F600} 是 ?
注意:u 后必须紧跟 4 位十六进制数字;u{} 内可以是 1 到 6 位,但必须用花括号包住。
引号嵌套与转义策略
不一定要靠转义来处理引号冲突,有更自然的写法:
- 外层用单引号,里面含双引号——不用转义:'text'
- 外层用双引号,里面含单引号——也不用转义:"It's fine"
- 混合嵌套多层或含变量?直接上模板字符串:`
Hello ${name}
`
只有当引号类型和字符串边界相同时,才需转义;否则优先选匹配的引号类型,更清爽。
容易踩坑的细节
转义不是万能的,有些情况 JS 会静默忽略或报错:
- 非模板字符串中写 z 这类非法转义,通常被当作普通字母 z 处理(非严格模式)
- 模板字符串里写非法转义(如 `z`),直接 SyntaxError 报错
- $ 和 ` 在模板字符串中必须转义才能字面输出:`Cost: $${price}`
- URI 编码(如 encodeURI())和字符串转义无关,别混用
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











