前言
本文为笔者在初学前端知识时的学习记录,如有错误请各位指出。
正文
编程语言
机器语言
使用二进制编写,代码的编写和阅读十分困难,对程序员要求高。
汇编语言
汇编语言是一种更高级别的机器语言,使用助记符来代替二进制代码,使程序员能够更容易地编写和阅读代码。
中级语言
中级编程语言或中级编程语言介于低级和高级编程语言之间。它是一种用户友好的语言,支持高级编程,但同时仍接近机器级语言。通常比高级语言更快,比机器语言和汇编语言更易读和编写。C语言是常见的中级语言。
C语言:“中级语言”过程式语言代表
- 可对位,字节,地址可直接操作。
- 代码和数据分离,倡导结构化编程。
- 功能齐全:数据类型和控制逻辑多样化。
- 可移植能力强。
高级语言
高级语言是一种与机器无关的语言。这些更接近人类语言并使用单词,使开发人员更容易编写程序。尽管高级语言更易于阅读、编写和维护,但它需要编译器将代码转换为机器语言。常见的高级语言有Java,Python,Javascript。
C++:面向对象语言代表
- C with Classes
- 继承
- 权限控制
- 虚函数
- 多态
Lisp:函数式语言代表
- 与机器无关
- 列表:代码即数据
- 闭包
Javascript:多范式语言代表
基于原型和头等函数的多范式语言
- 过程式
JavaScript最初被设计为一种过程式的脚本语言,它可以在Web浏览器中嵌入HTML页面,实现动态交互效果。
- 面向对象
JavaScript支持面向对象编程,支持类、对象、继承、封装等面向对象的特性。JavaScript中的对象是动态的,可以随时添加或删除属性和方法。
- 函数式
JavaScript支持函数式编程,它的函数可以赋值给变量,可以作为参数传递给其他函数,可以作为返回值返回给其他函数。
- 响应式
JavaScript可以通过DOM操作实现响应式编程,可以实现页面元素的动态更新,与用户的交互效果等。
编程范式
程序语言特性
编程范式:
面向过程
- 自顶向下的编程(分模块)
- 结构化编程 : 顺序结构、选择结构、循环结构
存在的问题:数据与算法关联弱、不利于修改和扩充、不利于代码重用
面向对象
四大特性: 封装、继承、多态、依赖注入
五大原则: 单一职责原则(SRP) 开放封闭原则(OCP)、 里氏替换原则(LSP)、 依赖倒置原则(DIP)、 接口分离原则(ISP)
函数式
特点:
- 函数是"一等公民"
- 纯函数/无副作用
- 高阶函数跟闭包
优势: 可缓存、可移植、可推理、可测试、可并行
响应式
异步/离散的函数式编程
- 数据流
- 操作符
设计模式
- 观察者模式
- 迭代器模式