String字面量
2025年2月5日大约 2 分钟
String字面量
字符串文本是 0 个或多个 Unicode 码位,用单引号或双引号括起来。
Unicode 码位也可以由转义序列表示。除右引号代码点 U+005C (REVERSE SOLIDUS)、U+000D (回车) 和 U+000A (换行) 之外,所有代码点都可以直接出现在字符串文本中。
任何码位都可以以转义序列的形式出现。String 文本的计算结果为 ECMAScript String 值。生成这些 String 值时,Unicode 码位将按照 11.1.1 中的定义进行 UTF-16 编码。
属于基本多语言平面的码位编码为字符串的单个代码单元元素。所有其他码位都编码为字符串的两个码位元素。
语法
有单引号,双引号的写法
- 不能包含以下之一,单引号、反斜杠、行终结符
- \ 与转义序列、行终结符的组合
转义字符
- 单转义字符( ‘,“,\,b,f,n,r,t,v)
- 0~9
- x
- u
转义序列:EscapeSequence
- 单转义字符、非转义字符(非转义、非行终结符)
- 0,不能跟八进制数
- 旧式八进制转义
- 0,不能跟8,9
- 1~7和八进制数的组合,不能跟八进制数
- 0~3和八进制数的组合
- 4~7和八进制数的组合
- 非八进制十进制转义:8,9
- 十六进制转义:
- x和两个十六进制数的组合
- Unicode转义:
- u 四个十六进制的组合
- u
先觉错误
在 严格模式(strict mode) 下,转义序列不能使用 旧式八进制转义、非八进制十进制转义。
在代码块内使用严格模式
字符串文本位于指令” Use Strict“之前,该指令将整个代码块至于严格模式,并强制实施上述规则。
// 使用了旧式八进制转义,出错
function invalid() {"/7";"use strict"}