前端主要编程语言为JavaScript,该语言融合多种编程范式,灵活性极高,前端人员需要在不同编程间根据不同场景灵活切换
编程语言分为机器语言、汇编语言、中级语言:C、高级语言:C++、Lisp、JavaScript
C语言:面向过程
C++:面向对象
Lisp:函数式语言
JavaScript:基于原型和头等函数的多范式语言
过程式:自顶向下、结构化编程、问题:数据和算法关联弱、不利于修改和扩充、不利于代码重用 面向对象编程优点:封装、继承、多态、依赖注入
函数式编程优点:聚合转发,可缓存、可移植、可测试、可推理、可并行,
可当做容器的类型,类型支持对容器内元素进行操作:
常见的functor:Array(lterable).map,Promise.then
可以去除嵌套容器的容器类型:
常见monad:Array.flatMap Promise.then
也可直接对两个容器进行操作
响应式编程:异步/离散的函数式编程:数据流和操作符(需要借助RcJS的帮助)
Observable:观察者模式和迭代器模式
领域特定语言(DSL):应用与特定领域的语言,如HEML、SQL
1、lexer:定义词法规则
2、Parse:通过上下文关系制定语法规则
3、Tools:通过工具产生语法分析器,得到语法数
4、Visitor:遍历语法数、执行
SQL Token分类:注释、关键字、操作符、空格、字符串、变量
通过本次课知道了各种语言的发展过程,各种高级语言的优点和缺点和领域特定语言创建的相关工具和模式。各种高级语言的优劣也决定了在不同场景需选择不同语言,以有针对性的解决不同的业务问题。这就要求我们必须对每种语言都熟练掌握并灵活切换运用。