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');
//结果是 s
        s 
        
console.log(String.raw`s\ns`);
//结果是s\ns
  • Object.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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值