前端的主要编程语言是JavaScript, 融合了多种编程范式的语言,灵活度非常高
编程语言
为什么需要编程语言
机器语言、汇编语言、高级语言
典型的高级语言
(1)C/C++
C“中级语言”过程式语言代表
·可对位,字节,地址直接操作
·代码和数据分离倡导结构化编程
·功能齐全
C++:面向对象语言代表
·C with Classes
·继承
·权限控制
·虚函数
·多态
(2)Lisp:函数式语言代表
·与机器无关
·列表:代码即数据
·闭包
(3)JavaScript
基于原型和头等函数的多范式语言
·过程式
·面向对象
·函数式
·响应式*
网站开发、服务器开发、控制脚本语言
编程范式
什么是编程范式
常见编程范式
A、命令式:程序员如何操作机器,改变状态
·过程式:操作用过程进行分组
(自顶向下、结构化编程)
自顶向下:
结构化编程:
JS中的面向过程:
面向过程式编程有什么缺点:
(1)算法与数据关联弱;(2)不利于修改和补充;(3)不利于代码重用 程序差错困难,
·对象式:根据操作和对应的状态进行分组
(封装、继承、多态、依赖注入*)
封装:关联数据和算法
继承:无需重写的情况下进行功能扩充
多态:不同的结构可以进行接口共享,进而达到函数复用
依赖注入*:去除代码耦合
面向对象编程五大特点:
B、声明式:声明想要的结果,不指定具体操作
函数式编程
ramdajs
(1)一等函数
(2)纯函数
优势:可缓存、可移植、可测试、可推理、可并行
(3)Currying
(4)组合
(5)Functor
可以当做容器的类型,容器支持对容器内元素进行操作
(6)Monad 可以去除嵌套容器的容器类型 常用monad:Array.flatMap Promise.then
(7)Applicative
响应式编程
工具库:RxJS
(1)Observable
·观察者模式
·迭代器模式
·Promise/EventTarget超集*
(2)操作符
(3)Monad
编程范式总结
领域特定语言
概念:
语言运行
lexer
SQL Token分类:
·注释
·关键字
·操作符
·空格
·字符串
·变量
Parser_语法规则
推导式:表示 非终结符 到(非终结符或终结符)的关系
终结符:构成句子的实际内容。可以简单理解为词法分析中的token
非终结符:符号或变量的有限集合。表示在句子中不同类型的短语或子句。