深入了解JS|青训营

49 阅读1分钟

JS的基本概念

JS的诞生:1995年,Brendan,Eich开发

  • 语法:借鉴C
  • 数据类型和内存管理:借鉴Java
  • 函数提升到first class地位:借鉴Scheme
  • 使用原型(prototype)的继承机制:借鉴Self

JS的发展

image.png 第五版用的最多

JS的基本概念

Browser进程---->GPU进程---->渲染进程(GUI线程、JS线程、事件触发线程、定时器触发线程、网络线程) ---->插件进程、网络进程

  • GUI线程和JS线程是互斥的,所以JS是单线程
  • JS是动态弱类型语言,指声明变量时无需指定变量类型,运行时确定其类型(静态强类型语言是声明变量时就要指定类型)
  • 面向对象、函数式
  • 解释类语言、JIT(?)
  • 安全、性能差

数据类型

image.png

作用域:全局作用域、函数作用域、块级作用域

变量的可访问性和可见性

js是静态作用域,可以通过它预测代码在执行过程中如何查找标识符

变量提升

image.png

可以看出,JS不是纯解释类型的语言,也是需要进行编译的

JS是怎么执行的

image.png

字节码的代码量比机器码要少,能节约内存

执行上下文

image.png

注意区分词法环境和词法作用域

image.png