(本文内容主要来自网上资料)
首先介绍Unicode字符集,它其实是一个包含全世界所有字符的集合,通过它,计算机可以解析所有的字符,不再会出现代码。
而javascript支持的是UCS-2编码。
由于JavaScript只能处理UCS-2编码,造成所有字符在这门语言中都是2个字节,如果是4个字节的字符,会当作两个双字节的字符处理。JavaScript的字符函数都受到这一点的影响,无法返回正确结果。
在ECMAScript 6中,加强了Unicode支持,基本能够解决问题.
ES6新增的功能
- 1
- 2
- 3
- 1
- 2
- 3
优点:
1. 有着同for…in一样的简洁语法,但是没有for…in那些缺点。
2. 不同用于forEach方法,它可以与break、continue和return配合使用。
3. 提供了遍历所有数据结构的统一操作接口。
它不仅可以遍历数组
let iterable = [10, 20, 30];
for
(let value of iterable) {
console.log(value);
}
// 10
// 20
// 30
也可以遍历字符串
let iterable =
"boo"
;
for
(let value of iterable) {
console.log(value);
}
// "b"
// "o"
// "o"
es6也新增了几个处理4字节码点的函数
1、codePointAt
方法 是测试一个字符由两个字节还是由四个字节组成的最简单方法。codePointAt
方法会正确返回32位的UTF-16字符的码点。
function is32Bit(c) { return c.codePointAt(0) > 0xFFFF; } is32Bit("