JS代码的编译执行分为三个步骤:
1)Break语法分拆为 token, 比如将 `let x = 5;` 分拆为 let, x, =, 5 和 ;这些 token
2)Parse 将数据流解析为“语法树“ Abst Syntax Tree(AST)。比如对`let x =5` 而言 ,最顶层为 VariableDeclaration,左分支为 Identifier,右分支为 AssignmentExpression, 右分支再往下有 NumericalLiteral (也就是5)。
3)生成代码,JS 引擎将 AST 转成可行性的机器码。
简化以上步骤,JS 的执行分为两个阶段,1) Parse 解析 2) Execute (执行)
因此,从思维层面上而言,JS 是 compiled-language 而非 interpreted-language. 也就是说此归类并非就底层的二进制执行而言,而是帮助我们有效思考 JS 执行原理。
拆解 interpret, inter 是 between 之间,而pret 是price,value;因此 interpret 原意为一手交钱,一手交货,现在引申为实时的同声传译。而在编程术语的具体应用中则是一行一行的实时交互的翻译代码。
拆解 compile,com 是一起, 而 pile 为木桩、桩柱,因此 compile 就是将木桩打捆到一起。到编程术语上,就是将代码整体一块编译,然后再执行,区分与 interpret 的交互模式。
以上,从技术与词源两个层面分析JS的语言特性。
页面更新:2024-02-27
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号