字符串的拓展
ES6 加强了对 Unicode 的支持,并且扩展了字符串对象。
ES6 为字符串添加了遍历器接口,使得字符串可以被for...of
循环遍历。
1 | for (let codePoint of 'foo') { |
charAt()
ES5 对字符串对象提供arAt
方法,返回字符串给定位置的字符。该方法不能识别码点大于0xFFFF
的字符。
1 | 'abc'.charAt(0) // "a" |
repeat()
repeat方法返回一个新字符串,表示将原字符串重复n次。参数如果是小数,会被取整。参数不能是小于等于-1
的负数或Infinity
。
1 | 'x'.repeat(3) // "xxx" |
padStart(), padEnd()
ES2017 引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()
用于头部补全,padEnd()
用于尾部补全。
1 | 'x'.padStart(5, 'ab') // 'ababx' |
includes(), startsWith(), endsWith()
传统上,JavaScript 只有indexOf方法,可以用来确定一个字符串是否包含在另一个字符串中。ES6 又提供了三种新方法。
- includes():返回布尔值,表示是否找到了参数字符串。
- startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
- endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。
1
2
3
4let s = 'Hello world!';
s.startsWith('Hello') // true
s.endsWith('!') // true
s.includes('o') // true