文章目录
一、字符串拓展
1、遍历
ES6 为字符串添加了遍历器接⼝,使得字符串可以被 for…of 循环遍历。
let str = 'hello world';
// for of => 对字符串做遍历操作
for(let s of str) {
console.log(s); //h e l l o w o r l d
}
2、实例方法
includes()
:返回布尔值,表示是否找到了参数字符串。
startsWith()
:返回布尔值,表示参数字符串是否在原字符串的头部。
endsWith()
:返回布尔值,表示参数字符串是否在原字符串的尾部。
let s = 'Hello world!';
s.startsWith('Hello') // true
s.endsWith('!') // true
s.includes('o') // true
repeat()
:方法返回一个新字符串,表示将原字符串重复n次。
'hello'.repeat(2) // "hellohello"
padStart()、padEnd()
:如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。
'x'.padStart(5, 'ab') // 'ababx'
'x'.padStart(4, 'ab') // 'abax'
'x'.padEnd(5, 'ab') // 'xabab'
'x'.padEnd(4, 'ab') // 'xaba'
trimStart()、trimEnd()
:trimStart()消除字符串头部的空格,trimEnd()消除尾部的空格。它们返回的都是新字符串,不会修改原始字符串。
const s = ' abc ';
s.trim() // "abc"
s.trimStart() // "abc "
s.trimEnd() // " abc"
matchAll()、replaceAll():
matchAll()方法返回一个正则表达式在当前字符串的所有匹配。replaceAll()替换匹配字符。
//历史上,字符串的实例方法replace()只能替换第一个匹配。
'aabbcc'.replace('b', '_') // 'aa_bcc'
//如果要替换所有的匹配,不得不使用正则表达式的g修饰符。
'aabbcc'.replace(/b/g, '_') // 'aa__cc'
//正则表达式毕竟不是那么方便和直观,ES2021 引入了replaceAll()方法,可以一次性替换所有匹配。
'aabbcc'.replaceAll('b', '_') // 'aa__cc'
二、数值拓展
1、实例方法
Number.isFinite(), Number.isNaN()
与isFinite、isNaN不同,这两个新⽅法只对数值有效, Number.isFinite() 对于⾮数值⼀
律返回 false , Number.isNaN() 只有对于 NaN 才返回 true ,⾮ NaN ⼀律返回
false 。
Number.isFinite(0.8); // true
Number.isFinite(NaN); // false
Number.isFinite(Infinity); // false
Number.isNaN(NaN) // true
Number.isNaN(15) // false
Number.parseInt(), Number.parseFloat()
ES6 将全局⽅法 parseInt() 和 parseFloat() ,移植到 Number 对象上⾯,⾏为完全
保持不变。
Number.parseInt('12.34') // 12
Number.parseFloat('123.45#') // 123.45
Number.isInteger()
⽤来判断⼀个数值是否为整数。
Number.isInteger(25) // true
Number.isInteger(25.1) // false