JavaScript 的执行过程
JS执行的第一步是读取 js 文件中的字符流,然后通过词法分析生成令牌流Tokens,之后再通过语法分析生成 AST(Abstract Syntax Tree),最后生成机器码执行。
模版语法-->抽象语法树AST-->渲染函数(h函数)-->虚拟节点(diff在此运行)-->界面生成AST需要用到指针算法和Stack数据结构
什么是AST(抽象语法树)?
抽象语法树(Abstract Syntax Tree,AST),或简称语法树(Syntax tree),是源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。
为什么要了解AST ?
如果你想了解 前端 常用的一些插件或者工具是如何实现的?那么你就得了解 AST,比如说Javascript转译、代码压缩、css预处理器、elint、pretiier等功能的实现,都是建立在 AST 的基础之上。
JavaScript 是一种解释型脚本语言,与 C、C++ 等语言需要先编译 再运行不同,使用 JavaScript 编写的代码 不需要 编译成目标源码, 可以直接运行(编译和解释是一次性完成的)。
编译 是把 输入的源程序 翻译生成为目标代码(例如,字节码等),并存下来(无论是存在内存中还是磁盘上),后续可直接执行此目标代码,即可以复用;
解释