mirror of
https://github.com/ruanyf/es6tutorial.git
synced 2025-05-28 21:32:20 +00:00
docs(string): delete String.prototype.at() #736
This commit is contained in:
parent
0f1abfca5a
commit
677621fe33
@ -169,26 +169,6 @@ for (let i of text) {
|
||||
|
||||
上面代码中,字符串`text`只有一个字符,但是`for`循环会认为它包含两个字符(都不可打印),而`for...of`循环会正确识别出这一个字符。
|
||||
|
||||
## at()
|
||||
|
||||
ES5 对字符串对象提供`charAt`方法,返回字符串给定位置的字符。该方法不能识别码点大于`0xFFFF`的字符。
|
||||
|
||||
```javascript
|
||||
'abc'.charAt(0) // "a"
|
||||
'𠮷'.charAt(0) // "\uD842"
|
||||
```
|
||||
|
||||
上面代码中的第二条语句,`charAt`方法期望返回的是用2个字节表示的字符,但汉字“𠮷”占用了4个字节,`charAt(0)`表示获取这4个字节中的前2个字节,很显然,这是无法正常显示的。
|
||||
|
||||
目前,有一个提案,提出字符串实例的`at`方法,可以识别 Unicode 编号大于`0xFFFF`的字符,返回正确的字符。
|
||||
|
||||
```javascript
|
||||
'abc'.at(0) // "a"
|
||||
'𠮷'.at(0) // "𠮷"
|
||||
```
|
||||
|
||||
这个方法可以通过[垫片库](https://github.com/es-shims/String.prototype.at)实现。
|
||||
|
||||
## normalize()
|
||||
|
||||
许多欧洲语言有语调符号和重音符号。为了表示它们,Unicode 提供了两种方法。一种是直接提供带重音符号的字符,比如`Ǒ`(\u01D1)。另一种是提供合成符号(combining character),即原字符与重音符号的合成,两个字符合成一个字符,比如`O`(\u004F)和`ˇ`(\u030C)合成`Ǒ`(\u004F\u030C)。
|
||||
|
Loading…
x
Reference in New Issue
Block a user