美文网首页
006_ES6知识点总结(03)字符串的拓展

006_ES6知识点总结(03)字符串的拓展

作者: maze1943 | 来源:发表于2020-02-20 09:40 被阅读0次

    ES6知识点整理

    [toc]

    03 字符串的拓展

    03.1 字符的Unicode表示法

    03.2 codePointAt()

    03.3 String.fromCodePoint()

    03.4 字符串的遍历器接口

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

    for (let codePoint of 'foo'){
        console.log(codePoint);
    }
    //f
    //o
    //o
    

    03.5 at()

    03.6 normalize()

    03.7 includes()、startWith()、endWith()

    以往的js中只有indexOf()可以用来判断一个字符串是否存在于另一个字符串中,ES6提供了三种新方法:
    inculdes() 返回布尔值,表示是否找到参数字符串
    starWith() 返回布尔值,表示参数字符串是否在源字符串的头部
    endWith() 返回布尔值,表示参数字符串是否在源字符串的尾部

    let s = "Hello World";
    
    s.includes('llo');//true
    s.startsWith('He');//true
    s.endsWith('ld');//true
    
    //3个方法都支持第二个参数,表示开始搜索的位置
    s.includes('llo',5);//false
    s.startsWith('He',3);//false
    s.endsWih('el',3);//true
    

    endsWith的第二个参数略有不同,表示的是前n个字符,而includes和startsWith表示从第n个字符到结尾之间。

    03.8 repeat()

    repeat方法返回一个新字符串,表示将原字符串重复n次。若参数是小数会取整,是负数或Infinity会报错,NaN等同于0。但参数如果是0到-1的小数,会先取整为0,不会报错。

    'abc'.repeat(3);//abcabcabc
    'lol'.repeat(2.1);//lollol
    'hello'.repeat(NaN);//hello
    

    我们可以使用repeat方法来实现一些常用的功能,比如单行文字的右对齐:

    let a = '欢迎光临', b = '狗子';
    function fullLeft(str,leng=25){
        console.log("  ".repeat((Math.max(str.length,len) - str.length)) + str);
    }
    fullLeft(a);//                                          欢迎光临
    fullLeft(b);//                                             狗子
    

    03.9 padStart()、padEnd()

    ES2017提供了字符串补全的功能:padStart用于头部补全,padEnd用于尾部补全。
    方法接受两个参数,第一个参数表示字符串的最小长度,小于这个长度会补全;第二个参数表示用来补全的字符串。

    'x'.padStart('6','abc');//abcabx
    'x'.padEnd('6','abc');//xabcab
    
    //若最小长度小于字符串实际长度,则返回原字符串
    'abcabc'.padStart(3);//abcabc
    
    //若省略第二个参数会用空格补全
    'x'.padStart(4);//'   x'
    

    03.10 模版字符串

    模版字符串用反引号作为标识,可以当做普通字符串,多行字符串,或在字符串中插入变量,并且支持模版字符串的嵌套。

    let name = 'Jelly';
    console.log(`Hello, ${name}`);//Hello, Jelly
    
    

    模版字符串可以用于dom模版的添加:

    let node = '', num = 10;
    for(let i = 0; i < 10; i++){
        node = `${node}<li>${i}</li>`;
    }
    document.body.innerHTML = node;
    

    相关文章

      网友评论

          本文标题:006_ES6知识点总结(03)字符串的拓展

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