深入理解 ES6 Promise

2019-11-07
阅读 26 分钟
12.1k
最近一段时间在重温ES6,Promise应该是是ES6新特性中非常重要的一部分内容。其实Promise在我日常开发中已经用得比较多,但大多数时候只是知道Promise可以用来实现异步编程,也只限于单纯地会用罢了,并没有时间深入去学习过,而且网上得资料大多都比较琐碎。我就自己花时间做了一个关于Promise比较完整的整理,深入学习...

ES6 Promise笔试题

2019-11-07
阅读 9 分钟
8.1k
一动不动是王八,上一篇文章学习了那么久Promise,是时候大显身手了! 基础题 题一 {代码...} 解析:Promise 构造函数是同步执行的,promise.then 中的函数是异步执行的。 运行结果: {代码...} 题二 {代码...} 解析:这道题主要理解js执行机制。 第一轮事件循环,先执行宏任务,主script,new Promise立即执行,输出 3...

JavaScript之多线程和Event Loop

2019-11-02
阅读 7 分钟
6.9k
几乎在每一本JS相关的书籍中,都会说JS是单线程的,JS是通过事件队列(Event Loop)的方式来实现异步回调的。 对很多初学JS的人来说,根本搞不清楚单线程的JS为什么拥有异步的能力,所以,我试图从进程、线程的角度来解释这个问题。

JavaScript之对象继承

2019-10-17
阅读 5 分钟
1.9k
这个概念其实也变得比较简单,可以类比类的继承链条,即每个对象的原型往上追溯,一直到Object为止,这组成了一个链条,将其中的对象串联起来,当查找当前对象的属性时,如果没找到,就会沿着这个链条去查找,一直到Object,如果还没发现,就会报undefined。那么也就意味着你的原型链不能太长,否则会出现效率问题。

ES6 尾调用和尾递归

2019-10-15
阅读 6 分钟
15.2k
上面代码中,情况一是调用函数g之后,还有赋值操作,所以不属于尾调用,即使语义完全一样。情况二也属于调用后还有操作,即使写在一行内。情况三等同于下面的代码。

ES6 箭头函数

2019-09-04
阅读 6 分钟
2.4k
基本用法 ES6 允许使用“箭头”(=>)定义函数。 {代码...} 如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分。 {代码...} 如果箭头函数的代码块部分多于一条语句,就要使用大括号将它们括起来,并且使用return语句返回。 {代码...} 由于大括号被解释为代码块,所以如果箭头函数直接返回一个对象,...