ES6学习记录

2016-03-13  本文已影响0人  寿_司

参考资料
阮一峰《ES6标准入门教程》

块级作用域:好处是:解决了循环中声明变量泄露污染全局的问题,解决了函数中内部变量可能会覆盖函数外部变量的问题。坏处是:代码块中的函数无法被外界所引用,需要改变编码时候的思维。

跨模块属性:具体方法类似于python导入方法通用,import
全局对象的属性:let,const,class定义的属性不直接属于全局对象window或者global。(ES6中新增好多中定义属性的关键字)


Iterator和for...of循环

Iterator为数据结构提供统一的访问机制,任何数据结构只要部署了iterator接口,便可以完成遍历操作。
iterator有三种作用:一为数据结构提供统一的操作,二可以是数据成员按照某种次序排列,三是提供了for...of操作,iterator接口主要供for...of消费。

generator函数

var abc = function* (){  ...  }   
function* abc(){   ...   }
function* helloWorldGenerator() {  
      yield 'hello';  
      yield 'world';  
      return 'ending';
}
var hw = helloWorldGenerator();
hw.next()
// { value: 'hello', done: false }
hw.next()
// { value: 'world', done: false }
hw.next()
// { value: 'ending', done: true }
hw.next()
// { value: undefined, done: true }
function* three(obj) { //普通函数  
    yield obj.a;
}
function* two(obj) { //generator函数 
     obj.a ++; 
     yield* three(obj);
}
function* one() {   
      var obj = {        
            a:0   
      };   
      while (obj.a <= 100){          
           yield* two(obj);   
      }
}
var gen = one();
gen.next();
> Object {value: 1, done: false}
gen.next()
> Object {value: 2, done: false}
gen.next()
> Object {value: 3, done: false}
function* abc() {  ... }
var gen = abc();
gen.next();
上一篇下一篇

猜你喜欢

热点阅读