ES 6 : 字符串的扩展

1. 字符的Unicode表示法

  JavaScript允许表示\u0000—\uFFFF之间的字符。超出这个范围,必须用2个双字节的形式表达。如:"\u20BB7"是汉字 "𠮷" 的编码,要使用如下方法表示:

  

  如果直接用"\u20BB7" 会表示成:

  

  这是因为\u后面跟上超出范围的数值,JavaScript会理解成\u20BB+7。由于\u20BB是一个不可打印的字符,所以只会显示一个空格,后面跟一个7。而ES6允许将码点放入大括号,就能正确解读该字符。

  

  下面的代码表明,大括号表示法与四字节的UTF-16编码是等价的。

  

  至此,JavaScript共有 6 种方法表示字符串:

   

2. includes(),startsWith(),endsWith()

  传统上,JavaScript中只有indexOf()方法可以用来确定一个字符串是否包含在另一个字符串中。ES6又提供了3中新方法。

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

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

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

  

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

  

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

 3. repeat(n)

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

  如果是小数,会被取整:

  如果repeat的参数是负数或者Infinity,会报错。

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

  参数NaN等同于0。

  如果repeat的参数是字符串,则会先转换成数字。

4.padStart()、padEnd()

  ES7推出了字符串补全长度的功能。如果某个字符串未达指定长度,会在头部或尾部补全。padStart用于头部补全,padEnd用于尾部补全。

'x'.padStart(5,'ab')    // 'ababx'
'x'.padEnd(5,'ab')    // 'xabab'

  上面的代码中,padStart和padEnd分别接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数则是用来补全的字符串。

  如果原字符串的长度等于或大于指定的最小长度,则返回原字符串。

'xxx'.padStart(2,'ab')      // 'xxx'

  如果省略第二个参数,则会用空格来补全。

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

 

 

posted @ 2016-09-20 14:29  -cyber  阅读(1659)  评论(0编辑  收藏  举报