第一课

高级语言与低级语言各自的特点

高级语言:

  • 简单、抽象;
  • 方便读写;
  • 执行效率差;
  • 需要编译;

低级语言(机器语言):

  • 执行速度快;
  • 难编写;
  • 易出错;
  • 兼容性差;

JavaScript语言

  • JS语言是 函数式编程 + 面向对象编程;
  • JS 是动态类型语言:编写代码时不需要写明变量类型;相较于静态类型语言,源代码中提供的信息太少了,编译器无法在代码运行前编译出机器代码。
  • JS 运行速度快:采用了 JIT(Just-In-Time Compilation 运行时编译)技术;p.s. (AOT运行 前编译[C++])
  • JS引擎:在 js 代码被 CPU 执行前将其转换为低级的机器语言并执行的程序;
    Chrome: V8 引擎、Webkit: JavaScriptCore、FireFox: SpiderMonkey等。
  • js 引擎编译 js 代码时大致流程
    js 源码 -> parser(解析器) -> AST(抽象语法树) -> 解释器(interpreter)-> bytecode(字节码: 与平台无关) -> 机器代码

第二课

V8 引擎简介

V8 引擎是一个接收 JavaScript 代码,编译代码然后执行的 C++程序,编译后的代码可以在多种操作系统多种处理器上运行。

第三课

JS 调用栈