为什么要把这个内容拿出来单独做一篇学习笔记? 生成器函数比较重要,相对不是很容易理解,单独做一篇笔记详细聊一聊生成器函数。 标题为什么是生成器函数与yield? 生成器函数类似其他服务器端语音中的接口(Interface),yield则是生成器函数中表示 返回 或 继续 执行的关键字。 弄清楚这两个 ...
分类:
其他好文 时间:
2017-09-23 00:09:46
阅读次数:
114
迭代器和for-of循环 es5使用内建的forEach方法来遍历数组 arr.foreach(function(value){ console.log(value); }); 这段代码看起来简洁,但这种方法有一个小缺陷:你不能使用break语句中断循环,也不能使用return语句返回到外层函数。 ...
分类:
其他好文 时间:
2017-09-22 00:46:02
阅读次数:
98
ES5中只有全局作用域和函数作用域,没有块级作用域的概念,而ES6中引入了块级作用域的概念。 ES5 规定,函数只能在顶层作用域和函数作用域之中声明,不能在块级作用域声明。 但是,浏览器没有遵守这个规定,为了兼容以前的旧代码,还是支持在块级作用域之中声明函数,因此上面两种情况实际都能运行,不会报错。 ...
分类:
其他好文 时间:
2017-09-21 20:55:14
阅读次数:
114
防止属性名的冲突。这就是 ES6 引入Symbol的原因。 它是 JavaScript 语言的第七种数据类型,前六种是:undefined、null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)。 注意,Symbol函数前不能使用new命令,否则会报错 ...
分类:
其他好文 时间:
2017-09-21 19:38:40
阅读次数:
162
接着上一篇的说。 arrow functions 箭头函数 => 更便捷的函数声明 之前的 function 声明可以被 => 代替,书写起来更便捷。 箭头函数还有个更炫酷也是最使用的用法。 先看个常见的例子: 这里的this指向内层function对象,所以出现undefined,这就是比较蛋疼的 ...
分类:
其他好文 时间:
2017-09-21 19:26:29
阅读次数:
157
前言let与var最大的区别就是var会变量提升、var会被覆盖、var变量没有块级作用域,而let都将弥补这些bug。传统语言都不会有‘变量提升、重复声明被覆盖、变量没有块级作用’这些问题,这是js的bug(js说这锅我不背,这是es6出的标准,我只是实现它)js里边只有全局作用域和函数作用域而传 ...
分类:
其他好文 时间:
2017-09-21 14:47:53
阅读次数:
157
promise对象,用来传递异步操作的消息。它代表了某个未来才会知道结果的事件(通常是一个异步操作),并且这个事件提供统一的API。 promise对象有两个特点: 1.对象的状态不受外界影响。promise对象代表一个异步操作,有3种状态:pending(进行种),resolved(已完成,又称f ...
分类:
其他好文 时间:
2017-09-20 21:52:30
阅读次数:
152
最近研究es6的promise觉得非常好用,还有jquery的 $.Deferred()、node里面的Q模块,都研究了一遍,于是自己用es5写了一个类似的promise功能 首先模块代码 使用例子1 使用例子2 Q.all的用法,多个异步操作 ...
分类:
其他好文 时间:
2017-09-20 19:47:20
阅读次数:
2777
class Event { constructor() { //保存事件列表 this.eventList = []; } on(key,fn){ if ( !this.eventList[ key ] ){ this.eventList[ key ] = []; } ... ...
分类:
其他好文 时间:
2017-09-20 19:44:10
阅读次数:
224
ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准。因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015。 也就是说,ES6就是ES2015。 虽然目前并不是所有浏览器都能兼容ES6全部特性,但越来越多的程序员在实际项目当中已经开始使用ES6 ...
分类:
其他好文 时间:
2017-09-20 19:33:03
阅读次数:
161