青训营前端day08_JS

9 阅读2分钟

特点

  • 事件驱动:JS 主要通过监听事件来响应用户的操作,实现交互式的 Web 页面。
  • 弱类型:JS 是一种动态类型语言,不需要显式声明变量类型,变量的类型会根据值的类型自动确定。
  • 基于原型的继承:JS 中的对象不是基于类创建的,而是基于原型创建的,可以通过原型链实现对象的继承。
  • 函数式编程:JS 支持函数式编程,可以将函数作为参数传递给其他函数,也可以将函数作为返回值返回。
  • 面向对象编程:JS 也支持面向对象编程,可以使用对象、类、继承等概念来实现面向对象编程。
  • 语法灵活:JS 的语法灵活多样,可以通过对象字面量、函数声明、箭头函数等方式来定义函数和对象。
  • 跨平台性:JS 可以在不同的平台上运行,如 Web、Node.js 等,具有良好的跨平台性。
  • 异步编程:JS 支持异步编程,可以使用 Promise、async/await 等方式来实现异步编程,避免了阻塞线程的问题。
  • 单线程
  • JavaScript通常被认为是一种解释型语言,因为它不需要编译成机器码或字节码,而是通过直接解释脚本代码来运行。然而,随着现代浏览器的发展和优化,JavaScript也可以通过使用即时编译(JIT)来提高性能,使得它更像一种半编译、半解释的语言。

执行

JavaScript的执行过程可以分为两个阶段:解释阶段和执行阶段。

在解释阶段,JavaScript引擎会对代码进行词法分析和语法分析,生成一颗抽象语法树(AST),并且在这个阶段会创建全局执行上下文。

在执行阶段,JavaScript引擎会按照AST的结构,逐行执行代码,并根据需要创建函数执行上下文。在执行上下文中,JavaScript引擎会创建变量环境、词法环境和this值,并且在这个阶段执行代码。