主题
String 类型
使用 单引号、双引号、反引号(`) 标示
字符字面量
非打印,有其他用途的字符。一个字面量只算一个字符的长度
字面量 | 含义 |
---|---|
\n | 换行 |
\t | 制表 |
\b | 退格 |
\r | 回车 |
\f | 换页 |
\\ | 反斜杠 |
\. | 单引号 |
\" | 双引号 |
\` | 反引号 |
\xnn | 以十六进制编码 nn 表示的字符 |
\unnnn | 以十六进制编码 nnnn 表示的Unicode字符 |
转换字符串
toString():数值、布尔值、对象和字符串值都自带此方法。返回当前值的字符串等价值
jstrue.toString() // 'true' 11.toString() // '11'
String()
- 如果值有 toString() 方法,则调用此方法
- 如果值是 null,返回 “null”
- 如果值是 undefined,返回 “undefined”
加号加上一个空字符串也可以转化
模板字符串
字面量
可以定义多行字符串
jsconst s = ` hello world ` s.length // 15
字符串的空格和换行,都是被保留的
如果不想要保留,可以使用 trim 消除
jsconst s = ` hello world `.trim() s.length // 12
插值
在
${}
中嵌入表达式,所有嵌入的值都会使用 toString() 强制转型为字符串jsconst name = 'kingmusi' `my name is ${ name }` // my name is kingmusi
jsconst a = 1, b = 2 `a + b = ${ a + b }` // a + b = 3
标签函数
紧跟在一个函数名后面,该函数将被调用来处理这个模板字符串,可以自定义插值行为
jsconst a = 5, b = 10 tag`Hello ${ a + b } world ${ a * b }` // 等同于 tag(['Hello ', ' world ', ''], 15, 50)
包装类型方法
请看 5-3 原始值包装类型
的 String 包装类型方法