ES6 字符串新增特性(第四篇):Unicode 表示法和 String 新增 API

66 阅读2分钟

ES6 不仅在字符串模板、解构赋值和迭代方面做出了改进,还在 Unicode 表示法和 String 对象的 API 上引入了新特性。这些改进为处理多种语言和复杂字符集的字符串提供了更好的支持。

Unicode 表示法

ES6 引入了更好的 Unicode 支持,允许 JavaScript 正确处理 4 个字节的 UTF-16 字符。

1. Unicode 码点表示法

ES6 引入了一种新的 Unicode 码点表示法,使用大括号 {} 包围 Unicode 码点。

// 传统写法只能处理 16 位的 UTF-16
console.log("\u20BB7"); // 输出: ₻7

// ES6 写法可以处理 32 位的 UTF-16
console.log("\u{20BB7}"); // 输出: 𠮷

2. String.fromCodePoint()codePointAt()

  • String.fromCodePoint():可以识别大于 0xFFFF 的码点,创建对应的字符串。
  • codePointAt():能够正确处理 4 个字节存储的字符,返回一个字符的码点。
console.log(String.fromCodePoint(0x20BB7)); // 输出: 𠮷
let s = "𠮷";
console.log(s.codePointAt(0)); // 输出: 134071

新增的 String API

ES6 在 String 对象上新增了几个实用的方法。

1. String.includes()

检查字符串是否包含另一个字符串。

let str = "Hello world!";
console.log(str.includes("world")); // 输出: true

2. String.startsWith()String.endsWith()

这两个方法分别用于检测字符串是否以给定的子字符串开始或结束。

let str = "Hello world!";
console.log(str.startsWith("Hello")); // 输出: true
console.log(str.endsWith("world!")); // 输出: true

3. String.repeat()

返回一个新字符串,表示将原字符串重复指定次数。

let str = "abc";
console.log(str.repeat(3)); // 输出: "abcabcabc"

使用场景

  • Unicode 表示法:在处理包含复杂字符(如表情符号或某些语言文字)的字符串时非常有用。
  • 新增 API:简化了字符串的检查、比较和复制操作。

注意事项

  • 使用新的 Unicode 表示法和 API 时,需要确保环境支持 ES6。
  • 在处理涉及多国语言或特殊字符的字符串时,正确的 Unicode 处理尤其重要。

ES6 对字符串的这些改进和增强,使得在 JavaScript 中处理字符串变得更加灵活和强大。这些特性对于构建现代、国际化的 Web 应用至关重要。