24、行为型:通过观察者、迭代器模式看JS异步回调

你好,我是石川。 说完了创建和结构型的设计模式,这一讲,我们来学习行为型的设计模式。我们前面说前端编程是**事件驱动(event driven)**的,之所以这么说,是因为前端编程几乎离不开用户和应用的交互,通常我们的程序会根据用户的屏幕点击或者页面...

JavaScript进阶实战课

25、行为型:模版、策略和状态模式有什么区别

你好,我是石川。 今天我们来说说设计模式中剩下的几种行为型模式。我个人觉得剩下这六种模式可以大致分为两类,一类是偏向“策略模型”的设计模式,这里包含了策略、状态和模版这三种模式。另外一大类是偏向“数据传递”的设计模式,这里就包含了中介、命令和职责链这...

JavaScript进阶实战课

26、特殊型:前端有哪些处理加载和渲染的特殊“模式”

你好,我是石川。 在之前的几讲中,我们介绍完了经典的设计模式,今天我们来看看在JS中特有的一些设计模式。其实从函数式编程开始,我们就一直强调了前端所重视的响应式编程思想,所以我认为这个部分可以分三大块儿来系统地看下响应式编程在JS中的设计模式,分别是...

JavaScript进阶实战课

27、性能:如何理解JavaScript中的并行、并发(上)

你好,我是石川。 在上一个单元,我们在JS之道的编程模式和JS之法的语法、算法的基础上,又学习了JS之术的设计模式,从今天开始,我们将开启JS之术非功能性优化篇。从前面的学习中,我们可以看到,无论是编程模式、算法还是设计模式都不是独立存在,而是一环扣...

JavaScript进阶实战课

28、性能:如何理解JavaScript中的并行、并发(下)

你好,我是石川。 在上一讲中,我们初步介绍了并发和并行的概念,对比了不同语言对多线程开发的支持。我们也通过postMessage,学习了用信息传递的方式在主线程和Worker线程间实现交互。但是,我们也发现了JavaScript对比其它语言,在多线程...

JavaScript进阶实战课

29、性能:通过Orinoco、Jank Busters看垃圾回收

你好,我是石川。 在前两讲中,我们从多线程开发的角度了解了JavaScript中的性能优化。 今天,我们再来看一下JavaScript中内存管理相关的垃圾回收(garbage collection)机制,以及用到的性能优化的相关算法。 实际上,在JS...

JavaScript进阶实战课
1345678