从语言层面认知JS
语言提供的抽象或简化级别
-
机器码(0-1)
-
汇编语言 - 汇编器, 先编译
-
高级语言 - 编译器 - c、 c++
-
更高级 - js - js引擎(V8/SpiderMonkey) - 性能损失
-
v8引擎
-
动态类型和弱类型 - 隐式解析
- 动态类型:运行时更改和确定;
- 弱类型:不严格区分类型
-
多范式 - 按照自己的方式,编写代码
- 声明式 - 命令式
- 函数式 - 面相对象
-
原型继承
- 继承
- 将一个对象作为另一个对象的原型来复用
- 原型链
- 原型链查找
- 继承
-
ECMAScript 只关注 JS 本身,
- 细节由浏览器厂商解答(内存管理和gc)
-
JIT
- js
- 原先 解释性
- V8,两个编译器
- 编译器1- 通用型,编译任何js代码,编译快,输出性能一般;
- 编译器2- 编译常用代码,编译慢,输出性能高;
- (webassemble)
- 编译器特点,对类型不变地编译器较好;因此,编译器2,应用有限;
- js
-
事件循环
- 调用栈和堆
- 单线程
- JS单线程
- webworker,属于web api
- nodejs, 属于nodejs运行时
- JS单线程
- 事件循环工作
- 不等函数返回值,监听传入的事件,调用回调;
- 非阻塞循环
- 执行同步代码,检查任务队列中需要执行的异步操作;
- 宏任务
- 比通常的任务队列优先级低
- 微任务
- 比通常的任务队列优先级高
- 宏任务
参考

浙公网安备 33010602011771号