ES6学习笔记

变量的解构赋值

1.圆括号使用

var [(a)] = [1];  //报错,变量声明语句中,不能带有圆括号。
[(a)] = [1];    //正确,模式是取数组的第一个成员,跟圆括号无关。

2.遍历Map结构

任何部署了Iterator接口的对象,都可以用for...of循环遍历。Map结构原生支持Iterator接口,配合变量的解构赋值,获取键名和键值就非常方便。

var map = new Map();
map.set('first', 'hello');
map.set('second', 'world');

for (let [key, value] of map) {
  console.log(key + " is " + value);
}
// first is hello
// second is world

注意:map.first = 'hello';
  map.second = 'world';
这样的赋值方式不具有Iterator接口,所以无法使用上述方法遍历map和取key/value值。

3.字符的Unicode表示法
ES6之前JavaScript允许使用\uxxxx表示一个字符,其中"xxxx"表示字符的码点,但这种方法只限于\u0000~\uFFFF之间的字符,超出范围需拆分为两个字节的形式表示。
eg:
"\uD842\uDFB7"
// "𠮷"

"\u20BB7"
// " 7"
原因是20887超出FFFF的范围,JavaScript会将它理解为2088+7,而\u2088是一个不可打印的字符,所以显示出来是' 7'。
ES6的改进是,只要将码点放入大括号内就能正确解读字符。
eg:
"\u{20BB7}"
// "𠮷"
let hello = 123;
hell\u{6F} // 123

'\u{1F680}' === '\uD83D\uDE80'
// true
最后一个例子表明,ES6的大括号表示法与之前的4字节UTF-16编码是等价的。

 

 

posted on 2016-05-29 03:22  王泽平  阅读(206)  评论(0编辑  收藏  举报

导航