编程范式 | 青训营笔记

78 阅读2分钟

第一部分:JavaScript特性

  • 基于原型和头等函数的多范式语言

    • 过程式

      • JavaScript最初被设计为一种过程式的脚本语言
    • 面向对象

      • JavaScript是一种支持面向对象编程的语言,它支持类、对象、继承、封装等面向对象的特性。
    • 函数式

      • JavaScript是一种支持函数式编程的语言,它的函数可以作为一等公民,可以赋值给变量,可以作为参数传递给其他函数,可以作为返回值返回给其他函数(这种函数叫做高阶函数)
    • 响应式

      • JavaScript可以通过DOM操作实现响应式编程,可以实现页面元素的动态更新,与用户的交互效果等

第二部分:编程范式

  • 分类

  • 命令式:命令式编程是一种以计算机执行的命令为中心的编程范式,它主要分为面向过程和面向对象两种形式

    1. 面向过程

      • 面向过程是一种以过程为中心的编程方式,它将问题分解为一系列步骤,通过函数的调用来实现程序的功能。例如,C语言就是一种面向过程的编程语言。
    2. 面向对象

      • 面向对象是一种以对象为中心的编程方式,它将数据和函数封装在一起,具有封装、继承、多态等特性。例如,JAV就是一种面向对象的编程语言。
  • 声明式:声明式编程是一种以描述问题为中心的编程范式,它主要分为函数式和响应式两种形式

    1. 函数式

      • 函数式编程是一种以函数为中心的编程方式,它将计算视为函数的应用,通过函数的组合来实现程序的功能。函数式的代码通常是一系列的函数调用,描述了计算的过程
    2. 响应式

      • 响应式编程是一种以数据流为中心的编程方式,它将数据和函数封装在一起,通过数据的变化来触发函数的执行,实现程序的功能。响应式的代码通常是一系列的数据流,描述了数据的变化和处理(e.g.onChange这种,当数据变化,则触发此函数)

第三部分:函数式编程

  • 一般都会是纯函数,也就是不依赖外部值,不修改函数参数的函数 优势:
  1. 可缓存
  2. 可移植:没有依赖,容易移植
  3. 可测试:没有依赖,容易提取测试
  4. 可推理
  5. 可并行

image.png

  • 函数组合 类似于嵌套执行,可以有交换律

image.png