ES6字符串

作者: 木中木 | 来源:发表于2017-12-04 08:47 被阅读0次

    1.normalize()方法,用来将字符的不同表示方法统一为同样的形式,这称为 Unicode 正规化,这样就可以很容易求汉字和字符混杂的字数,而不用因为汉字和英文字符占位不同导致结果不一致。
    NFC,默认参数,表示“标准等价合成”(Normalization Form Canonical Composition),返回多个简单字符的合成字符。所谓“标准等价”指的是视觉和语义上的等价。
    NFD,表示“标准等价分解”(Normalization Form Canonical Decomposition),即在标准等价的前提下,返回合成字符分解的多个简单字符。
    NFKC,表示“兼容等价合成”(Normalization Form Compatibility Composition),返回合成字符。所谓“兼容等价”指的是语义上存在等价,但视觉上不等价,比如“囍”和“喜喜”。(这只是用来举例,normalize方法不能识别中文。)
    NFKD,表示“兼容等价分解”(Normalization Form Compatibility Decomposition),即在兼容等价的前提下,返回合成字符分解的多个简单字符。

    '\u01D1'.normalize() === '\u004F\u030C'.normalize()
    // true
    console.log('级'.normalize('NFC').length) 
    //1
    

    2.includes(), startsWith(), endsWith()
    includes():返回布尔值,表示是否找到了参数字符串。
    startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
    endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。

    console.log('级'.normalize('NFC').length)
    let a ='linjian';
    console.log(a.includes('lin'))
    //true
    console.log(a.startsWith('lin'))
    //true
    console.log(a.endsWith('jian'));
    //true
    

    3.padStart(),padEnd()
    引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全
    4.支持模板写法不用繁琐的+

    let a = 1,b='c';
    console.log(`
      this is a template example,
      this values is ${a},and ,${b}
    `)
    //"
      this is a template example,
      this values is 1,and ,c
    "
    

    模板运算:

    let a = 1,b='c',c=2;
    console.log(`
      this is a template example,
      this values is ${a} + ${c}=${a+c}
    `)
    

    方法调用:

    let a = 1,b='c',c=2;
    console.log(`
      this is a template example,
      this values is ${a} + ${c}=${temp(a,c)}
    `)
    function temp(a=1,c=1){
      return a + c ;
    }
    

    标签模板
    标签模板其实不是模板,而是函数调用的一种特殊形式。“标签”指的就是函数,紧跟在后面的模板字符串就是它的参数。

    let a = 5;
    let b = 10;
    
    tag`Hello ${ a + b } world ${ a * b }`;
    // 等同于
    tag(['Hello ', ' world ', ''], 15, 50);
    

    tag函数的第一个参数是一个数组,该数组的成员是模板字符串中那些没有变量替换的部分,也就是说,变量替换只发生在数组的第一个成员与第二个成员之间、第二个成员与第三个成员之间,以此类推。

    tag函数的其他参数,都是模板字符串各个变量被替换后的值。由于本例中,模板字符串含有两个变量,因此tag会接受到value1和value2两个参数。

    相关文章

      网友评论

        本文标题:ES6字符串

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