![React工程师修炼指南](https://wfqqreader-1252317822.image.myqcloud.com/cover/475/37323475/b_37323475.jpg)
上QQ阅读APP看书,第一时间看更新
1.3 字符串扩展
1.3.1 Unicode支持
Unicode的目标是为世界上每一个字符提供唯一标识符,唯一标识符称为码位或码点(Code Point)。而这些码位是用于表示字符的,又称为字符编码(Character Encode)。JavaScript里是可以通过\uxxxx的形式来表示一个字符,例如:\u0061表示字符a。但是这种语法限于码点在U+0000~U+FFFF之间的字符。超出这个范围的字符必须用两个字节来表示,例如:
![](https://epubservercos.yuewen.com/D960D7/19773741008833706/epubprivate/OEBPS/Images/23_03.jpg?sign=1739156908-pp0hUImpMr7Uhpz9jTRABbpJhIAxel8c-0-69399250b05de2a6a1f442f93a9f3b66)
ES6针对上述情况增加了大括号来让字符正确解读,代码如下:
![](https://epubservercos.yuewen.com/D960D7/19773741008833706/epubprivate/OEBPS/Images/23_04.jpg?sign=1739156908-cvdcTmJ4M196MlITxwzYzFnTRNYBd3h3-0-5ee9fc790e121b32ebeb3a88d9c422ca)
1.3.2 新增字符串方法
在ES5中,一般通过indexOf方法来判断一个字符串是否包含在另外一个字符串中。如果能够找到就会返回被查找字符串的索引位置,如果没有找到就会返还“-1”,如:
![](https://epubservercos.yuewen.com/D960D7/19773741008833706/epubprivate/OEBPS/Images/23_05.jpg?sign=1739156908-BEDSQPV0cLt3Zz3odEbDgbUSyP3Jt8IT-0-7f7951a717d883123fd1820ebef3c135)
ES6中新增了includes()、startsWith()、endsWith()方法来查找字符串。
includes():返还布尔值,表示是否找到了字符串。
startsWith():返还布尔值,表示被检测字符串是否在源字符串的头部。
endsWith():返还布尔值,表示被检测字符串是否在源字符串的结尾。
![](https://epubservercos.yuewen.com/D960D7/19773741008833706/epubprivate/OEBPS/Images/24_01.jpg?sign=1739156908-7ySaVPjVgxzXuNmm3mmVftp5chOS8R2z-0-ebc6bab4d5036be44f69048b1bfe2bf0)
ES6标准中也新增了repeat()方法返回新的字符串将源字符串循环指定次数。例如:
![](https://epubservercos.yuewen.com/D960D7/19773741008833706/epubprivate/OEBPS/Images/24_02.jpg?sign=1739156908-tdTrCcUpAK4fhIZwH3cGAbypbJDHQAEv-0-135be8d78ac24b2681834d7e3325a1af)
1.3.3 模板字符串
ES5标准中一般输出模板是通过字符串拼接的方式来进行的,例如:
![](https://epubservercos.yuewen.com/D960D7/19773741008833706/epubprivate/OEBPS/Images/24_03.jpg?sign=1739156908-fmT3vcw0HjzH6xFH8bo7BE3Ot9NR8DGi-0-69c38f8139674cab876882bd37ae09ea)
在上述字符串拼接中注意单双引号的使用。如果遇到多行字符串的情况需要通过“\n”来手动换行。但是在ES6中可以通过模板字符串简化上述写法,模板字符串通过反引号来表示“``”。如果要嵌入变量通过“${}”来实现:
![](https://epubservercos.yuewen.com/D960D7/19773741008833706/epubprivate/OEBPS/Images/24_04.jpg?sign=1739156908-CZhfulzw9msJQGhDNtbsHa9zpZyhkUn9-0-a87e1b897cc4a7247711355b7cbe1a30)
![](https://epubservercos.yuewen.com/D960D7/19773741008833706/epubprivate/OEBPS/Images/25_01.jpg?sign=1739156908-MCp7M6JQu1ppaSiVZhjSrQ0Jsabobats-0-6377e282b1c4f51444415f141c88f08b)
模板字符串在使用过程中支持多行字符串,“${}”里可以接收三目运算符。遇到特殊字符同样需要通过“\”来进行转义:
![](https://epubservercos.yuewen.com/D960D7/19773741008833706/epubprivate/OEBPS/Images/25_02.jpg?sign=1739156908-r8tDE4JrlS6TBxykODn71HzB7fRyyeOs-0-839a583f56dc1456308e4ad0ad32b78a)