From 677621fe33fe73cc60addd6dd3cf20ae26d9116d Mon Sep 17 00:00:00 2001 From: ruanyf Date: Wed, 15 Aug 2018 12:01:57 +0800 Subject: [PATCH] docs(string): delete String.prototype.at() #736 --- docs/string.md | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/docs/string.md b/docs/string.md index 9ebd108..15c45d3 100644 --- a/docs/string.md +++ b/docs/string.md @@ -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)。