字符串的扩展
1. 字符的 Unicode 表示法
JavaScript 可以采用 \uxxxx 形式表示一个字符(表示一个字符的码点),但是这种表示法只限于在 \u0000 - \uFFFF 之间的字符。超出这个范围的字符必须使用双字节的形式进行表示
ES6 可以将码点放入大括号内,这样就可以正确的解读字符了
// 使用大括号进行表示码点
\u{20BB7}
2. codePointAt()
JavaScript 内部,字符以 UTF-16 的格式存储,每个字符固定为 2 个字节。当码点大于 0xFFFF 的字符(需要 4 个字节存储),JavaScript 会认为他们是两个字符
3. 字符串的遍历接口
ES6 为字符串添加了遍历器接口,使得字符串可以被 for...of
循环遍历,同时这个遍历器还可以识别大于 0XFFFF 的码点
4. includes(),startsWith(),endsWith()
includes():
返回布尔值,表示是否找到了参数字符串
startsWith():
返回布尔值,表示参数字符串是否在原字符串的头部
endsWith():
返回布尔值,表示参数字符串是否在原字符串的尾部
这三个方法都支持第二个参数,表示开始搜索的位置。但是 endsWith 有所不同,他的第二个参数代表针对前 n 个字符
5. repeat()
repeat 方法返回一个新字符串,表示将原字符重复 n 次
'x'.repeat(3) // 'xxx'
'hello'.repeat(2) // 'hellohello'
6. padStart(),padEnd()
如果某个字符串不够指定长度,会在头部或者尾部补全。
// 一共接受两个参数,一个用来指定字符串的最小长度,另一个表示补全的字符串
'x'.padStart(5, 'ad') // 'adadx'
'x'.padEnd(5, 'ad') // 'xadad'
规则
1. 如果原字符串的长度,等于或者大于指定字符串的长度,则返回原字符串。
2. 如果用来补全的字符串和原字符串,两者的长度超过了指定的最小长度,则会截取超出位数的补全字符串
3. 如果省略第二个参数,默认使用空格补全长度
关于 padStart 的常见用途
1. 为数值补全指定位数,如生成 10 位的数值字符串
2. 另一个用途是提示字符串格式
'123'.padStart(10, '0') // '0000000123'
'09-12'.padStart(10, 'YYYY-MM-DD') // 'yyyy-O9-12'
7. 模板字符串
规则
1. 使用反引号进行标识,可以当普通字符串使用。
2. 所以想要在模板字符串中使用反引号时,需要使用反斜杠进行转义 \。
3. 同时模板字符串中嵌入变量,需要将变量名写在
之中,在这个大括号内,可以放入任意的JavaScript表达式。4.模板字符串中还能调用函数
之
中
,
在
这
个
大
括
号
内
,
可
以
放
入
任
意
的
J
a
v
a
S
c
r
i
p
t
表
达
式
。
4.
模
板
字
符
串
中
还
能
调
用
函
数
{fn()}
5. 如果模板字符串的变量没有生命,则会报错