编译原理理解
几个概念:抽象的语法树(AST)、编译语言、分词拆解、JavaScript编译器(Compiler)、解释器(Interpreter)、JavaScript引擎、作用域
步骤:
1、分词,把代码分解为AST代码块
2、解析,由JavaScript编译器对AST分词块进行解析,生成AST语法树
3、代码生成,由JavaScript引擎把 解析生成的AST语法树再次转换,转换成可执行代码
几个理解:
- javascript代码没办法直接执行,需通过JavaScript编译器编译后,才能识别,然后通过JavaScript引擎运行或执行。
- javaScript编译一般在代码执行前几微妙甚至更短的时间内编译完成
- JS是在渲染进程里的JS引擎线程执行的
- JS引擎在浏览器中,是浏览器内核的一部分(google chrome的V8)
- AST螺丝刀:recast
AST理解
语句和声明 - JavaScript | MDNJavaScript 应用程序是由许多语法正确的语句组成的。单个语句可以跨多行。如果每个语句用分号隔开,那么多个语句可以在一行中出现。本页的内容并不是一个关键字,而是一组关键字。https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements 在线生成AST树https://esprima.org/demo/parse.html#