美文网首页ES6
3. 字符串的扩展

3. 字符串的扩展

作者: 羊烊羴 | 来源:发表于2018-01-11 15:11 被阅读0次

    字符串的遍历接口

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

    let str='hello';
    
    for(let code of str){
        console.log(code);
    }//'h','e','l','l','o'
    

    for...of遍历字符串可以识别大于0xffff的码点,而传统的for循环遍历无法识别这样的码点

    includes(),startsWidth(),endsWith()

    includes()返回布尔值,表示是否找到了参数的字符串

    startsWith()返回布尔值,表示参数是否在源字符串的头部

    endsWith返回布尔值,表示参数是否在源字符串的尾部

    以上三个方法都支持第二个参数,用于表示开始搜索的位置

    const str="hello world";
    console.log(str.includes("d",3)); //true
    console.log(str.endsWith("o",5)); //true
    console.log(str.startsWith("l",3)); //true
    
    //三个方法有一些不同的地方在于,在传入第二个参数的情况下,endsWith从第二个参数的位置开始向前查找,其余两个方法是从第二个参数开始的位置向后查找
    

    repeat

    该方法会返回一个新的字符串,用于表示将原来的字符串重复了多少次

    const str="hello";
    console.log(str.repeat(3.9)); //hellohellohello
    console.log(str.repeat(0)); //""
    
    //如果传入的参数为小数,那么会转换为整数进行转换,转换规则会按照地板函数来取整,如果参数是负数或Infinity会报错,参数为NAN视为0,如果参数是字符串会先转换为数字再进行操作
    

    padStart(),padEnd()

    这两个方法用于补全字符串,padStart用来在头部补全,padEnd用来在尾部补全

    const str="hello";
    console.log(str.padStart(8, "world")); //worhello
    console.log(str.padEnd(10, "world")); //hellowworld
    
    //第一个参数表示补全后字符串的长度,第二个参数表示要对源字符串补全的字符串,如果源字符串的长度大于该值,返回源字符串,如果小于该值那么对字符串进行补全,如果补全字符串和源字符串之和大于设定的值,那么会截去超出位数的补全字符,如果不设定第二个参数,那么默认使用空格进行补全
    

    利用这两个补全方法,可以实现生成指定位数或提示字符串格式

    console.log("1".padStart(10, "0")); //0000000001
    console.log("9-12".padStart(10, "YYYY-MM-DD")); //YYYY-M9-12
    

    模板字符串

    模板字符串是增强版的字符串,用`标识,它可以当作普通字符串使用,也可以用来定义多行字符串,或在字符中嵌入变量

    "hello world \n -javascript"
    `hello world
                    JavaScript`
                    
    //在使用普通字符串时我们想要实现换行效果,需要使用\n ,而在模板字符串中,我们只要按照书写格式进行换行即可,在模板字符串中所有的换行和空格都会被保留
    
    var name="Tom";
    console.log(`name is ${name}`);
    
    var obj={one:1,two:2};
    console.log(`${obj.one + obj.two}`);
    
    function  fn() {
           return "hello world"
    }
    console.log(`say:${fn()}`);
    //模板字符串可以直接嵌入变量,变量使用${}进行包裹,在大括号内可以放入任意的javasccript表达式,可以进行运算,以及对象属性的引用,也可以直接引用构造函数
    
    //如过{}内不是字符串,将会按照一般的规范进行转义,例如如果是一个对象,,将会默认调用对象的toStrin方法,如果引用的变量没有声明,那么会报错,如果是字符会直接输出该字符串内容
    
    //模板字符串可以进行嵌套
    

    相关文章

      网友评论

        本文标题:3. 字符串的扩展

        本文链接:https://www.haomeiwen.com/subject/nmttoxtx.html