ES6笔记

结构数组:Array Destructuring

我们可以用这种范式来得到x对应位置的值
let x=['zhangsan','lisi','wangwu'];
let [z,l,w]=x;//z,l,w可以是任意名称
document.write(z+l+w);//输出:zhangsanlisiwangwu
对象解构
    var x={name:"zhangsan",age:30};
    var {name}=x;//name 和x对象的属性名称一样
var {name:name1}=x;//可以在属性后面增加:别名的方式解构
    document.write(name+name1);//输出zhangsanzhangsan

解构参数:
 

 //解构参数
    function test(name,age,{address,desc}={}) {
      console.log(name,age,address,desc);
    }
    test('zhangsan',21,{address:'beijin',desc:'my name is zhangsan',other:'xxx'});//输出 zhangsan 21 beijin my name is zhangsan

对象的属性名称:

对象的属性名称,可以在花括号里面定义,也可以直接用:对象.name定义,还可以以数组的方式定义,代码如下:
 

var apple={name:"apple",color:'red'};
   apple.age=2;
   apple['price']='10$';
   console.log('apple:',apple);

自定义迭代器:

function check(datas) {
    var i=0;
    return {
      next(){
        var done=i>=datas.length;
        var value=!done?datas[i++]:undefined;
        return {
          done:done,
          value:value,
        };
      }
    }
  }
  let iter=check(['a','b','c','d']);
  console.log(iter.next());
  console.log(iter.next());

生成器 - Generators

function chef(datas) {
    for (var i = 0; i < datas.length; i++) {
        yield datas[i];
    }
}
var iter=chef(['a','b','c','d']);
console.log(iter.next());
console.log(iter.next());

 

你可能感兴趣的