第一部分:JavaScript特性
-
基于原型和头等函数的多范式语言
-
过程式
- JavaScript最初被设计为一种过程式的脚本语言
-
面向对象
- JavaScript是一种支持面向对象编程的语言,它支持类、对象、继承、封装等面向对象的特性。
-
函数式
- JavaScript是一种支持函数式编程的语言,它的函数可以作为一等公民,可以赋值给变量,可以作为参数传递给其他函数,可以作为返回值返回给其他函数(这种函数叫做高阶函数)
-
响应式
- JavaScript可以通过DOM操作实现响应式编程,可以实现页面元素的动态更新,与用户的交互效果等
-
第二部分:编程范式
-
分类
-
命令式:命令式编程是一种以计算机执行的命令为中心的编程范式,它主要分为面向过程和面向对象两种形式
-
面向过程
- 面向过程是一种以过程为中心的编程方式,它将问题分解为一系列步骤,通过函数的调用来实现程序的功能。例如,C语言就是一种面向过程的编程语言。
-
面向对象
- 面向对象是一种以对象为中心的编程方式,它将数据和函数封装在一起,具有封装、继承、多态等特性。例如,JAV就是一种面向对象的编程语言。
-
-
声明式:声明式编程是一种以描述问题为中心的编程范式,它主要分为函数式和响应式两种形式
-
函数式
- 函数式编程是一种以函数为中心的编程方式,它将计算视为函数的应用,通过函数的组合来实现程序的功能。函数式的代码通常是一系列的函数调用,描述了计算的过程
-
响应式
- 响应式编程是一种以数据流为中心的编程方式,它将数据和函数封装在一起,通过数据的变化来触发函数的执行,实现程序的功能。响应式的代码通常是一系列的数据流,描述了数据的变化和处理(e.g.onChange这种,当数据变化,则触发此函数)
-
第三部分:函数式编程
- 一般都会是纯函数,也就是不依赖外部值,不修改函数参数的函数 优势:
- 可缓存
- 可移植:没有依赖,容易移植
- 可测试:没有依赖,容易提取测试
- 可推理
- 可并行
- 函数组合 类似于嵌套执行,可以有交换律