ES6/ES7/ES8新特性之新增处理字符串的方法
我主要提常用方法
includes()
// let str = ‘happy’;
是否包括以下字符,返回true or false
// console.log(str.includes(‘ha’)) // true
includes()比indexOf()的优势在于,indexOf()的返回结果不是布尔值,须与-1对比,不够直观。
repeat()
复制字符串
// console.log(str.repeat(3)) // ‘happyhappyhappy’
如果参数是正小数,会取整。
如果参数是负数,会报错。
如果参数是0,会得到空串。
如果参数是字符串、布尔型或其他类型,会先换算成整数。
- startsWith(), endsWith()
其中,includes()和startsWith()的默认值是0,表示检索范围是参数值检索到末尾,很简单不多说。
endsWith()很特殊,它第二个参数的默认值是字符串总长度值,表示检索范围是从开头检索到这个值。
let s = 'Hello world!';
s.includes('Hello', 6) // false 从左起第6位到末尾的范围内检索,结果是没找到
s.startsWith('world', 6) // true 从左起第6位到末尾,看看是不是以world开头,结果是
s.endsWith('Hello', 8) // false 从开头找到第8位,看看是不是以Hello结束,结果不是
- padStart(),padEnd()
这两个是ES8(也就是2017)新增方法。
用于在开头补全字符和在末尾补全字符,padStart和padEnd一共接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。
'abc'.padStart(10, '0123456789')
// '0123456abc'
'abc'.padEnd(10, '0123456789')
// 'abc0123456'
如果没有缺省第二个参数,默认填充空格。
'abc'.padEnd(10)
// 'abc '
console.log(('abc'.padEnd(10)).length);// 10
String.raw
String.raw的用途是,给\再加一个转义,让\原样输出。就是说,你拿到一个字串,比如s\ns,执行console.log(‘s\ns’),你会发现,对话框的2个s是换行的。但其实你想要原样输出,怎么办,那就是console.log(‘s\ns’);
//结果是 ss
console.log(String.raw
s\ns
);
//结果是s\nsObject.entries()
该方法会将某个对象的可枚举属性与值按照二维数组的方式返回。(如果目标对象是数组,则会将数组的下标作为键值返回)
Object.entries({ one: 1, two: 2 }) //[['one', 1], ['two', 2]]
Object.extries([1, 3]) //[['0', 1], ['1', 3]]
- Object.values()
它的工作原理和Object.entries()方法很像,但是它只返回键值对中的值,结果是一维数组
Object.values({one: 1, two: 2}) // [1, 2]
Object.values({3: 'a', 1: 'b', 2: 'c'}) // ['b', 'c', 'a']
Object.extries([1, 3]) //[1, 3]
求幂运算符(**)
这是一个中缀例子,效仿自Ruby等语法,使用更简洁Math.pow(3, 2) === 3 ** 2 // 9
还没有评论,来说两句吧...