JS的基本概念
JS的诞生:1995年,Brendan,Eich开发
- 语法:借鉴C
- 数据类型和内存管理:借鉴Java
- 函数提升到first class地位:借鉴Scheme
- 使用原型(prototype)的继承机制:借鉴Self
JS的发展:
第五版用的最多
JS的基本概念
Browser进程---->GPU进程---->渲染进程(GUI线程、JS线程、事件触发线程、定时器触发线程、网络线程) ---->插件进程、网络进程
- GUI线程和JS线程是互斥的,所以JS是单线程
- JS是动态弱类型语言,指声明变量时无需指定变量类型,运行时确定其类型(静态强类型语言是声明变量时就要指定类型)
- 面向对象、函数式
- 解释类语言、JIT(?)
- 安全、性能差
数据类型
作用域:全局作用域、函数作用域、块级作用域
变量的可访问性和可见性
js是静态作用域,可以通过它预测代码在执行过程中如何查找标识符
变量提升
可以看出,JS不是纯解释类型的语言,也是需要进行编译的
JS是怎么执行的
字节码的代码量比机器码要少,能节约内存
执行上下文
注意区分词法环境和词法作用域