学习ES6中的字符串扩展小记

字符串的扩展

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. 同时模板字符串中嵌入变量,需要将变量名写在 JavaScript4. {fn()}
5. 如果模板字符串的变量没有生命,则会报错

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章