表3-2列出了JavaScript的转义序列以及它们所代表的字符。其中有两个转义序列是通用的,通过把Latin-1或Unicode字符编码表示为十六进制数,它们可以表示任意字符。例如,转义序列\xA9表示的是版权符号,它采用十六进制数A9表示Latin-1编码。同样的,\u表示的是由四位十六进制数指定的任意Unicode字符,如\u03c0表示的是字符π(圆周率)。注意,虽然ECMAScript v1标准要求使用Unicode字符转义,但是JavaScript 1.3之前的版本通常不支持转义符。有些JavaScript版本还允许用反斜线符合后加三位八进制数字来表示Latin-1字符,但是ECMAScript v3标准不支持这种转义序列,所以不应该再使用它们。
序列 | 所代表的字符 |
NUL 字符(\u0000) | |
\b | 退格符(\u0008) |
\t | 水平制表符(\u0009) |
\n | 换行符(\u000A) |
\v | 垂直制表符(\u000B) |
\f | 换页符(\u000C) |
\r | 回车符(\u000D) |
\” | 双引号(\u0022) |
\’ | 撇号或单引号(\u0027) |
\\ | 反斜线符(\u005C) |
\xXXX | 由两位十六进制数值XX指定的Latin-1字符 |
\uXXXX | 由四位十六进制数XXXX指定的Unicode字符 |
\XXX | 由一位到三位八进制数(1到377)指定的Latin-1字符。ECMAScript v3不支持,不要使用这种转义序列 |
最后要注意,不能在换行符前用反斜线转义字符使字符串(或其他JavaScript)标记跨两行或在字符串中包含一个换行直接量。如果\位于表3-2中所示的字符之外的字符前,则忽略\(当然,JavaScript语言将来的版本可能定义新的转义序列)。例如,\#等价于#。