![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=1739017195-fHSGr6ajx8fc2FvgN4XCazcKpFyRX46d-0-720a3c41a6e0195f17ec7c41d684761a)
ES6针对上述情况增加了大括号来让字符正确解读,代码如下:
![](https://epubservercos.yuewen.com/D960D7/19773741008833706/epubprivate/OEBPS/Images/23_04.jpg?sign=1739017195-Xh2HJBXkDuVP1V6BcxdKXm4i6LhYZrQx-0-eea9d1a38023d23990c12aea39895fcc)
1.3.2 新增字符串方法
在ES5中,一般通过indexOf方法来判断一个字符串是否包含在另外一个字符串中。如果能够找到就会返回被查找字符串的索引位置,如果没有找到就会返还“-1”,如:
![](https://epubservercos.yuewen.com/D960D7/19773741008833706/epubprivate/OEBPS/Images/23_05.jpg?sign=1739017195-EiCoOCmdU0UTwnwbxP83k4aE8AMUpRpD-0-e0291b21c7a5eb3e6245eab858ed68e9)
ES6中新增了includes()、startsWith()、endsWith()方法来查找字符串。
includes():返还布尔值,表示是否找到了字符串。
startsWith():返还布尔值,表示被检测字符串是否在源字符串的头部。
endsWith():返还布尔值,表示被检测字符串是否在源字符串的结尾。
![](https://epubservercos.yuewen.com/D960D7/19773741008833706/epubprivate/OEBPS/Images/24_01.jpg?sign=1739017195-ZBl00C0ymdXRgOuor8FsQZ2uPRzRC8rR-0-cae744b4d0f6a07391116e0dce459149)
ES6标准中也新增了repeat()方法返回新的字符串将源字符串循环指定次数。例如:
![](https://epubservercos.yuewen.com/D960D7/19773741008833706/epubprivate/OEBPS/Images/24_02.jpg?sign=1739017195-7QfMZMXCNdFKTLDPmoR0C0karAM9ORem-0-2e0e05270df0e6dd74b7ccfb546f7f52)
1.3.3 模板字符串
ES5标准中一般输出模板是通过字符串拼接的方式来进行的,例如:
![](https://epubservercos.yuewen.com/D960D7/19773741008833706/epubprivate/OEBPS/Images/24_03.jpg?sign=1739017195-MDW8y5CznHWWImsHPlt4MKCKP7goEkUU-0-1deb3a45466606986c9c85f03a903048)
在上述字符串拼接中注意单双引号的使用。如果遇到多行字符串的情况需要通过“\n”来手动换行。但是在ES6中可以通过模板字符串简化上述写法,模板字符串通过反引号来表示“``”。如果要嵌入变量通过“${}”来实现:
![](https://epubservercos.yuewen.com/D960D7/19773741008833706/epubprivate/OEBPS/Images/24_04.jpg?sign=1739017195-BWv8BbOFXwEcKNh5csi0IXm0KjJc0pUO-0-57fbafbd2c27efe2e3a59c1108ddb34b)
![](https://epubservercos.yuewen.com/D960D7/19773741008833706/epubprivate/OEBPS/Images/25_01.jpg?sign=1739017195-apn75qDRQPL2FF8Gss5ucxqkVmKVaTSL-0-9c9ec8f3f4a5167a432f01affa78ba88)
模板字符串在使用过程中支持多行字符串,“${}”里可以接收三目运算符。遇到特殊字符同样需要通过“\”来进行转义:
![](https://epubservercos.yuewen.com/D960D7/19773741008833706/epubprivate/OEBPS/Images/25_02.jpg?sign=1739017195-LZhKllcqBcIoEiN3TMsglOwzC66LsQJn-0-4de64d4df63a57343b511c2de3b73048)