zoukankan      html  css  js  c++  java
  • 字符串的扩展

    1、字符串的遍历器接口

    ES6 为字符串添加了遍历器接口,使得字符串可以被for...of循环遍历。

    //字符串循环 for  of
    for(let s of  'helloworld'){    
      console.log(s)  //h e l l ....
    };

    2、includes(), startsWith(), endsWith()

    • includes():返回布尔值,表示是否找到了参数字符串。
    • startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
    • endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部
    let s = 'Hello world!';
    
    s.startsWith('Hello') // true
    s.endsWith('!') // true
    s.includes('o') // true

    这三个方法都支持第二个参数,表示开始搜索的位置。

    let s = 'Hello world!';
    
    s.startsWith('world', 6) // true
    s.endsWith('Hello', 5) // true
    s.includes('Hello', 6) // false

    上面代码表示,使用第二个参数n时,endsWith的行为与其他两个方法有所不同。它针对前n个字符,而其他两个方法针对从第n个位置直到字符串结束。

    3、repeat()

    repeat方法返回一个新字符串,表示将原字符串重复n次。

    'x'.repeat(3) // "xxx"
    'na'.repeat(0) // ""
    'na'.repeat(2.9) // "nana" 取小数会向下取整
    
    //如果repeat的参数是负数或者Infinity,会报错。
    'na'.repeat(Infinity)
    // RangeError
    'na'.repeat(-1)
    // RangeError

    但是,如果参数是 0 到-1 之间的小数,则等同于 0,这是因为会先进行取整运算。0 到-1 之间的小数,取整以后等于-0repeat视同为 0。

    'na'.repeat(-0.9) // ""
    'na'.repeat(NaN) // ""        NaN等同有0
    'na'.repeat(true) // "na"     ture等同于1
    'na'.repeat(false) // ""      ture等同于0
    'na'.repeat('2') //"nana"     字符串先转换成数字

    4、padStart(),padEnd()

    ES2017 引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。

    //原字符串长度小于指定长度
    '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'

    如果用来补全的字符串与原字符串,两者的长度之和超过了指定的最小长度,则会截去超出位数的补全字符串。

    'abc'.padStart(10, '0123456789')
    // '0123456abc'

    如果省略第二个参数,默认使用空格补全长度。

    'x'.padStart(4) // '   x'
    'x'.padEnd(4) // 'x   '

    5、模板字符串

    模板字符串(template string)是增强版的字符串,用反引号(`)标识。

    模板字符串中嵌入变量,需要将变量名写在${}之中。

    $('#result').append(`There are <b>${basket.count}</b> items
       in your basket, <em>${basket.onSale}</em>are on sale!`);
  • 相关阅读:
    js对象数组(JSON) 根据某个共同字段 分组
    一个 函数 用来转化esSearch 的range 条件
    关于 vuex 报错 Do not mutate vuex store state outside mutation handlers.
    android listview 重用view导致的选择混乱问题
    android SDK和ADT的更新
    Android中adb push和adb install的使用区别
    pycharm中添加扩展工具pylint
    su Authentication failure解决
    Putty以及adb网络调试
    有关android源码编译的几个问题
  • 原文地址:https://www.cnblogs.com/ycg-myblog/p/9906444.html
Copyright © 2011-2022 走看看