字符串扩展

字符串扩展

  • 1.字符的 Unicode 表示法
    • ES6 对这一点做出了改进,只要将码点放入大括号,就能正确解读该字符。
  • 2.codePointAt()
    • JavaScript 内部,字符以 UTF-16 的格式储存,每个字符固定为2个字节。对于那些需要4个字节储存的字符(Unicode 码点大于0xFFFF的字符),JavaScript 会认为它们是两个字符。
    • ES6 提供了codePointAt方法,能够正确处理 4 个字节储存的字符,返回一个字符的码点。
  • 3.String.fromCodePoint()
    • ES5 提供String.fromCharCode方法,用于从码点返回对应字符,但是这个方法不能识别 32 位的 UTF-16 字符(Unicode 编号大于0xFFFF)
    • ES6 提供了String.fromCodePoint方法,可以识别大于0xFFFF的字符,弥补了String.fromCharCode方法的不足。在作用上,正好与codePointAt方法相反。
      字符串的遍历器接口
    • ES6 为字符串添加了遍历器接口(详见《Iterator》一章),使得字符串可以被for...of循环遍历。
    • 除了遍历字符串,这个遍历器最大的优点是可以识别大于0xFFFF的码点,传统的for循环无法识别这样的码点。
  • 4.at()
    • ES5 对字符串对象提供charAt方法,返回字符串给定位置的字符。该方法不能识别码点大于0xFFFF的字符。
    • 目前,有一个提案,提出字符串实例的at方法,可以识别 Unicode 编号大于0xFFFF的字符,返回正确的字符。
  • 5.normalize()
    • ES6 提供字符串实例的normalize()方法,用来将字符的不同表示方法统一为同样的形式,这称为 Unicode 正规化。
  • 6.includes(), startsWith(), endsWith()(2个参数,第一个字符串,第二个第几位开始)
    • includes():返回布尔值,表示是否找到了参数字符串。
    • startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
    • endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。
  • 7.repeat()(参数是数字)
    • repeat方法返回一个新字符串,表示将原字符串重复n次。
      padStart(),padEnd()(第一个参数是字符串长度,第二个参数是要循环的字符串)
    • ES2017 引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。
  • 8.matchAll()
    • matchAll方法返回一个正则表达式在当前字符串的所有匹配,详见《正则的扩展》的一章。
      模板字符串(可以保留标签或者变量值)
    • ` 会保留空格 ${(放入变量,甚至js代码)}
  • 9.实例:模板编译
  • 10.标签模板
  • 11.String.raw()
    • String.raw方法,往往用来充当模板字符串的处理函数,返回一个斜杠都被转义(即斜杠前面再加一个斜杠)的字符串,对应于替换变量后的模板字符串。
      模板字符串的限制

你可能感兴趣的:(字符串扩展)