[译] Async 与 Defer

说明

前端网络编程之缓存策略

浏览器缓存分为强制缓存和协商缓存,强制缓存中 Cache-Control 比 Expires 的优先级更高。协商缓存中,If-None-Match 比 If-Modified-Since 的优先级更高。

JS异步编程之async&await

async&await 是结合 Promise 链式调用和 Generator 暂停执行的特点,且封装了 Generator 自执行函数,让代码看起来更像是同步执行,是未来异步编程的发展方向。

JS异步编程之Generator

Generator 生成具有 Symbol.iterator 属性的迭代器对象,迭代器具有 next 方法,能够无阻塞地将代码挂起,下次调用 .next() 方法再恢复执行。

JS异步编程之Promise

Promise 是 ES6 提出的简化异步流程控制的新规范,强调异步任务的完成状态且具有原子性,这使得我们的代码更容易追踪和维护。

JS异步编程之callback

回调函数是 JS 异步编程中的基石,但同时也存在很多问题,不太适合人类自然语言的线性思维习惯。

JS专题之继承

javascript 由于历史发展原因,继承方式实际上是通过原型链属性查找的方式,但正规的叫法不叫继承而叫“委托”,ES6 的 class extends 关键字也不过是 ES5 的语法糖。

JS专题之垃圾回收

JS 是一门具有自动垃圾收集的编程语言,在浏览器中主要通过标记清除方法来回收垃圾,NodeJs 中主要通过分代回收、Scavenge、标记清除、增量标记等算法来回收垃圾。

JS专题之memoization

函数记忆(memoization)将函数的参数和结果值,保存在对象当中,用一部分的内存开销来提高程序计算的性能,常用在递归和重复运算较多的场景。

JS专题之严格模式

严格模式能帮助我们以更规范的方式书写代码,但是无论是否严格模式,都应该注意代码的规范,避免隐式 bug 的出现。

JS专题之数组展开

数组扁平化其实就是利用元素迭代 + 元素拼接(叠加)+ 递归调用来对数组进行处理,达到将多层数组转换为单层数组的过程。

JS专题之深浅拷贝

深浅拷贝主要考察了开发者对 JS 数据类型的了解,数组,对象常用方法的特点和应用,递归函数的封装。

JS专题之函数柯里化

函数柯里化是“函数是一等公民”的编程语言环境形成的编程风格,利用了函数能作为参数一级返回值以及利用了闭包保存变量的特点,是将多个参数的函数转换为接收一个参数,最后返回结果的技术。

JS专题之节流函数

去抖和节流函数都是为了降低高频率事件触发的事件处理频率,从而优化网页中大量重绘重排带来的性能问题

JS专题之去抖函数

去抖函数的意义在于合并多次事件触发为一次事件处理,从而降低事件处理函数可能引发的大量重绘重排,http 请求,内存占用和页面卡顿。

JS专题之事件模型

用户与网页的交互是通过事件进行的,事件模型分为事件冒泡和事件捕获,事件冒泡的兼容性更好,应用更广,同时通过事件冒泡,可以建立事件委托,提升网页性能。