前端网络编程之缓存策略
浏览器缓存分为强制缓存和协商缓存,强制缓存中 Cache-Control 比 Expires 的优先级更高。协商缓存中,If-None-Match 比 If-Modified-Since 的优先级更高。
JS模块化编程
掌握这几种模块化规范的区别和联系有助于提高代码的模块化质量
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专题之数据类型和类型检测
js 是动态语言,数据类型的检查是在运行时执行,为了避免代码莫名其妙报错,所以做好数据类型的检测很有必要。
JS专题之节流函数
去抖和节流函数都是为了降低高频率事件触发的事件处理频率,从而优化网页中大量重绘重排带来的性能问题
JS专题之去抖函数
去抖函数的意义在于合并多次事件触发为一次事件处理,从而降低事件处理函数可能引发的大量重绘重排,http 请求,内存占用和页面卡顿。
JS专题之事件循环
事件循环是 JS 和 Nodejs 事件调用机制的核心,保证了页面可以有序无阻塞的进行。
JS专题之事件模型
用户与网页的交互是通过事件进行的,事件模型分为事件冒泡和事件捕获,事件冒泡的兼容性更好,应用更广,同时通过事件冒泡,可以建立事件委托,提升网页性能。