1
0
mirror of https://github.com/ruanyf/es6tutorial.git synced 2025-05-24 18:32:22 +00:00

docs(string): edit string

This commit is contained in:
ruanyf 2016-12-03 09:43:14 +08:00
parent 2361c73019
commit 366c4ddfb5
2 changed files with 6 additions and 6 deletions

View File

@ -708,14 +708,14 @@ var es6 = {
standard: "ECMA-262" standard: "ECMA-262"
}; };
for (e in es6) { for (let e in es6) {
console.log(e); console.log(e);
} }
// edition // edition
// committee // committee
// standard // standard
for (e of es6) { for (let e of es6) {
console.log(e); console.log(e);
} }
// TypeError: es6 is not iterable // TypeError: es6 is not iterable

View File

@ -21,7 +21,7 @@ JavaScript允许采用`\uxxxx`形式表示一个字符其中“xxxx”表示
// " 7" // " 7"
``` ```
上面代码表示,如果直接在“\u”后面跟上超过`0xFFFF`的数值(比如`\u20BB7`JavaScript会理解成“\u20BB+7”。由于`\u20BB`是一个不可打印字符所以只会显示一个空格后面跟着一个7。 上面代码表示,如果直接在`\u`后面跟上超过`0xFFFF`的数值(比如`\u20BB7`JavaScript会理解成`\u20BB+7`。由于`\u20BB`是一个不可打印字符,所以只会显示一个空格,后面跟着一个`7`
ES6 对这一点做出了改进,只要将码点放入大括号,就能正确解读该字符。 ES6 对这一点做出了改进,只要将码点放入大括号,就能正确解读该字符。
@ -53,7 +53,7 @@ hell\u{6F} // 123
## codePointAt() ## codePointAt()
JavaScript内部字符以UTF-16的格式储存每个字符固定为2个字节。对于那些需要4个字节储存的字符Unicode码点大于0xFFFF的字符JavaScript会认为它们是两个字符。 JavaScript内部字符以UTF-16的格式储存每个字符固定为`2`个字节。对于那些需要`4`个字节储存的字符Unicode码点大于`0xFFFF`的字符JavaScript会认为它们是两个字符。
```javascript ```javascript
var s = "𠮷"; var s = "𠮷";
@ -65,7 +65,7 @@ s.charCodeAt(0) // 55362
s.charCodeAt(1) // 57271 s.charCodeAt(1) // 57271
``` ```
上面代码中,汉字“𠮷”的码点是`0x20BB7`UTF-16编码为`0xD842 0xDFB7`十进制为55362 57271需要4个字节储存。对于这种4个字节的字符JavaScript不能正确处理字符串长度会误判为2而且`charAt`方法无法读取整个字符,`charCodeAt`方法只能分别返回前两个字节和后两个字节的值。 上面代码中,汉字“𠮷”(注意,这个字不是”吉祥“的”吉“)的码点是`0x20BB7`UTF-16编码为`0xD842 0xDFB7`(十进制为`55362 57271`),需要`4`个字节储存。对于这种`4`个字节的字符JavaScript不能正确处理字符串长度会误判为`2`,而且`charAt`方法无法读取整个字符,`charCodeAt`方法只能分别返回前两个字节和后两个字节的值。
ES6提供了`codePointAt`方法能够正确处理4个字节储存的字符返回一个字符的码点。 ES6提供了`codePointAt`方法能够正确处理4个字节储存的字符返回一个字符的码点。