开篇词、JavaScript的进阶之路你好,我是石川,欢迎和我一起学习JavaScript。 JavaScript的前身Mocha,是布兰登·艾克(Brendan Eich)在1995年用10天时间设计出来的。我第一次接触JavaScript,是从它诞生算起的10年后,在学校学习的,那时...2026-02-27JavaScript进阶实战课
1、函数式vs.面向对象:响应未知和不确定你好,我是石川。 编程模式(programming paradigm)可以说是编程语言的元认知。从编程模式的角度看JavaScript,它是结构化的、事件驱动的动态语言,且支持声明式和指令式两种模式。所以我们说,JavaScript是一个多模式(mu...2026-02-27JavaScript进阶实战课
2、如何通过闭包对象管理程序中状态的变化你好,我是石川。 通过上节课的学习,现在我们知道,函数式编程中存在副作用(side effect),而纯函数和不可变就是减少副作用的两个核心思想。那么按理说,我们要想把副作用降低到接近为零,就可以用纯函数,同时不接受任何参数。但是这样完全自我封闭的函...2026-02-27JavaScript进阶实战课
3、如何通过部分应用和柯里化让函数具象化你好,我是石川。 在前面两节课里,我说过函数式编程的核心就是把数据作为输入,通过算法进行计算,最后输出结果。同时我也提到,在函数式+响应式编程中,面对未知、动态和不可控时,可以通过纯函数和不可变等手段减少副作用、增加确定性,及时地适应和调整。 那么现...2026-02-27JavaScript进阶实战课
4、如何通过组合、管道和reducer让函数抽象化你好,我是石川。 上节课我们讲到,通过部分应用和柯里化,我们做到了从抽象到具象化。那么,今天我们要讲的组合和管道,就是反过来帮助我们把函数从具象化变到抽象化的过程。它相当于是系统化地把不同的组件函数,封装在了只有一个入口和出口的函数当中。 其实,我们...2026-02-27JavaScript进阶实战课
5、map、reduce和monad如何围绕值进行操作你好,我是石川。 上节课里,我们在学习组合和管道的工作机制的时候,第一次认识了reducer,同时在讲到transduce的时候,也接触到了map、filter和reduce这些概念。那么今天这节课,我们就通过JS中数组自带的功能方法,来进一步了解下...2026-02-27JavaScript进阶实战课