ES6/ES7/ES8新特性之新增处理字符串的方法

快来打我* 2023-08-17 15:42 205阅读 0赞

我主要提常用方法

  • 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()很特殊,它第二个参数的默认值是字符串总长度值,表示检索范围是从开头检索到这个值。

  1. let s = 'Hello world!';
  2. s.includes('Hello', 6) // false 从左起第6位到末尾的范围内检索,结果是没找到
  3. s.startsWith('world', 6) // true 从左起第6位到末尾,看看是不是以world开头,结果是
  4. s.endsWith('Hello', 8) // false 从开头找到第8位,看看是不是以Hello结束,结果不是
  • padStart(),padEnd()

这两个是ES8(也就是2017)新增方法。
用于在开头补全字符和在末尾补全字符,padStart和padEnd一共接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。

  1. 'abc'.padStart(10, '0123456789')
  2. // '0123456abc'
  3. 'abc'.padEnd(10, '0123456789')
  4. // 'abc0123456'
  5. 如果没有缺省第二个参数,默认填充空格。
  6. 'abc'.padEnd(10)
  7. // 'abc '
  8. console.log(('abc'.padEnd(10)).length);// 10
  • String.raw
    String.raw的用途是,给\再加一个转义,让\原样输出。就是说,你拿到一个字串,比如s\ns,执行console.log(‘s\ns’),你会发现,对话框的2个s是换行的。但其实你想要原样输出,怎么办,那就是

    console.log(‘s\ns’);
    //结果是 s

    1. s

    console.log(String.raws\ns);
    //结果是s\ns

  • Object.entries()

该方法会将某个对象的可枚举属性与值按照二维数组的方式返回。(如果目标对象是数组,则会将数组的下标作为键值返回)

  1. Object.entries({ one: 1, two: 2 }) //[['one', 1], ['two', 2]]
  2. Object.extries([1, 3]) //[['0', 1], ['1', 3]]
  • Object.values()

它的工作原理和Object.entries()方法很像,但是它只返回键值对中的值,结果是一维数组

  1. Object.values({one: 1, two: 2}) // [1, 2]
  2. Object.values({3: 'a', 1: 'b', 2: 'c'}) // ['b', 'c', 'a']
  3. Object.extries([1, 3]) //[1, 3]
  • 求幂运算符(**)
    这是一个中缀例子,效仿自Ruby等语法,使用更简洁

    Math.pow(3, 2) === 3 ** 2 // 9

发表评论

表情:
评论列表 (有 0 条评论,205人围观)

还没有评论,来说两句吧...

相关阅读