什么是Iterator?他是一种接口,为各种不同的数据结构提供统一的访问机制,任何数据结构只要部署上Iterator接口就可以完成遍历操作(PS:个人认为他的这个遍历就是c语言里面的指针),他的作用有三个:第一个是为数据提供接口,第二个是使得数据结构的成员能够按照某种次序排列,第三个是这个接口能用f ...
分类:
其他好文 时间:
2017-10-21 19:16:13
阅读次数:
258
第一是修饰器是ES7的一个提案,现在Babel转码器已经支持。那么什么是修饰器呢,修饰器是对类的行为的改变,在代码编译时发生的,而不是在运行时发生的且修饰器只能用于类和类的方法。修饰器可以接受三个函数依次是目标函数、属性名和该属性的描述对象,最后两个参数可以省略。 第二是export和import分 ...
分类:
其他好文 时间:
2017-10-21 19:11:22
阅读次数:
182
使用Thunk函数对Generator函数进行流程管理,首先什么是Thunk函数?我们应该先说下参数的求值策略,编译器的求值策略一个是“传值调用”另一个是“传名调用”,编译器的传名调用实现往往是现将函数放到一个临时函数中,再将这个临时函数传入函数体,这个临时函数就是Thunk。 如果用于生产环境的转 ...
分类:
其他好文 时间:
2017-10-21 19:11:02
阅读次数:
177
Proxy是ES6提供的代理器可以起到拦截作用,写法形式如 var proxy = new Proxy(target,handler);参数target表示要拦截的目标对象,handler是用来定制拦截行为。 Proxy支持拦截操作一览:拦截对象的读(get)或写(set)、拦截propKey in ...
分类:
其他好文 时间:
2017-10-21 19:06:39
阅读次数:
237
Generator函数是一种异步编程解决方案,再次叙述他的语法和API,至于异步编程请看后续文章。 Generator本身自带Iterator接口,所以可以使用for...of,个人理解为Generator是一个指针代码块,里面封装了指针,使用next()就开始执行指针所指向的函数。这个函数有两个特 ...
分类:
其他好文 时间:
2017-10-21 19:00:12
阅读次数:
127
ES6中的Class和JS的比起来无疑是让对象原型的写法更加清晰,更像面向对象编程的语法而已,注意一个问题ES6里面的Class的内部定义的所有方法都是不可枚举的,而且在ES6中Class不存在变量提升。(注意:Class同时具有prototype属性和__proto__属性,所以同时存在两条继承链 ...
分类:
其他好文 时间:
2017-10-21 18:58:37
阅读次数:
140
{ let list = new Set(); list.add(5); list.add(7); console.log('size', list, list.size); //{5, 7} 2 } { let arr = [1, 2, 3, 4, 5]; let list = new Set(a... ...
分类:
其他好文 时间:
2017-10-20 21:33:05
阅读次数:
224
从工作到现在,虽然是PHP出身,一直都和JS形影不离,从JQ和原生处理页面,到后来被angular1的MVVM模式惊艳到,再到弃angular转战vue,到现在使用react,一路走来,跳坑无数,现在决定开始对JS的东西进行整理!!! 看到一篇文写得不错,先来镇楼咯!!! ES6新特性概览:http ...
分类:
其他好文 时间:
2017-10-20 20:12:46
阅读次数:
255
以下是ES6排名前十的最佳特性列表(排名不分先后): 声明:这些列表仅是个人主观意见。它绝不是为了削弱ES6其它功能,这里只列出了10条比较常用的特性。 1.Default Parameters(默认参数) in ES6 还记得我们以前不得不通过下面方式来定义默认参数: 一切工作都是正常的,直到参数 ...
分类:
其他好文 时间:
2017-10-20 11:58:17
阅读次数:
191
import export 这两个家伙对应的就是es6自己的module功能。 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成一个个功能相对独立但相互依赖的小工程,再用一种简单的方法把这些小工程连接在一起。 这有可能导致两个问题: (1)一方面js代码变得很臃 ...
分类:
其他好文 时间:
2017-10-19 21:08:33
阅读次数:
165