总结
完整的 Unicode 支持允许 JS 以合理的方式处理 UTF-16 字符。通过 codePointAt() 与 String.fromCodePoint() 在代码点和字符之间转换的能力,是字符串操作的一大进步。正则表达式新增的 u 标志使得直接操作代码点而不是 16 位字符变为可能,而 normalize() 方法则允许进行更恰当的字符串比较。
ES6 也添加了操作字符串的新方法,允许你更容易识别子字符串,而不用管它在父字符串中的位置。正则表达式同样引入了许多功能。
模板字面量是 ES6 的一项重要补充,允许你创建领域专用语言(DSL)让字符串的创建更容易。能将变量直接嵌入到模板字面量中,意味着开发者在组合长字符串与变量时,有了一种比字符串拼接更为安全的工具。
内置的多行字符串支持,是普通 JS 字符串绝对无法做到的,这使得模板字面量成为凌驾于前者之上的有用升级。尽管在模板字面量中允许直接使用换行,你依然可以使用 \n 或其它字符转义序列。
模板标签是创建 DSL 最重要的部分。标签是接收模板字面量片段作为参数的函数,你可以使用它们来返回合适的字符串。这些数据包括了字面量、等价的原始值以及替换位的值,标签使用这些信息片段来决定输出。