字符串的扩大
1.字符串的遍历器接口
- 字符串能够被for…of轮回遍历。
与es5的比较
for轮回虽能够遍历字符串,但不能辨认大于oxFFFF的编码;
2.位置 –> 字符/码点
依据指定位置返回对应的字符和码点
es5:
- charCodeAt() 码点
- charAt() 字符
es6: —上风,能辨认大于oxFFFF的编码;
- codePointAt()–返回码点
- at()–返回字符 (现在es6还未完成,须要经由过程垫片库完成)
let hhh='fdf';
hhh.charAt(1);
// "d"
hhh.charCodeAt(1);
// 100
hhh.codePointAt(1);
// 100
hhh.at(1)
// Uncaught TypeError: hhh.at is not a function
3.码点 –> 字符
依据码点返回对应的字符
- es5:String.fromCharCode(0x20BB7); 定义在String对象上
- es6:String.fromCodePoint();定义在字符串的实例对象上。–能辨认32位字符。即能辨认Unicode编号大于oxFFFF;
String.fromCharCode(100)
"d"
String.fromCodePoint(0x20BB7)
// "?"
String.fromCodePoint(100,100,100)
// ddd
4.查询字符串是不是包括某个字符
es5:
- indexOf()
es6:
- includes():返回布尔值,示意是不是找到了参数字符串。
- startsWith():返回布尔值,示意参数字符串是不是在原字符串的头部。
- endsWith():返回布尔值,示意参数字符串是不是在原字符串的尾部
都支撑第二个参数,示意最先搜刮的位置。
let s = 'Hello world!';
s.startsWith('world', 6) // true
s.endsWith('Hello', 5) // true
s.includes('Hello', 6) // false
5.repeat(n)
返回一个新字符串,示意将原字符串反复n次。
参数如果是小数,会被取整。
'x'.repeat(3) // "xxx"
'hello'.repeat(2) // "hellohello"
'na'.repeat(0) // ""
'na'.repeat(2.9) // "nana"
'na'.repeat(Infinity)
// RangeError
'na'.repeat(-1)
// RangeError
参数NaN等同于 0
6.字符串补全长度的功用
padStart(minlength,string)用于头部补全,
padEnd(minlength,string)用于尾部补全
用处:
- 提醒字符串花样;
- 为数值补全指定位数
'x'.padStart(5, 'ab') // 'ababx'
'x'.padStart(4, 'ab') // 'abax'
'x'.padEnd(5, 'ab') // 'xabab'
'x'.padEnd(4, 'ab') // 'xaba'
'xxx'.padStart(2, 'ab') // 'xxx'
'xxx'.padEnd(2, 'ab') // 'xxx'
'x'.padStart(4) // ' x'
'x'.padEnd(4) // 'x '
'12'.padStart(10, 'YYYY-MM-DD') // "YYYY-MM-12"
'09-12'.padStart(10, 'YYYY-MM-DD') // "YYYY-09-12"