JS-1-理论
1. BOM
理论
- BOM (Browser Object Model) 是浏览器对象模型
- 顶级对象:window
- window 对象是一个全局对象,也是 JavaScript 中的顶级对象
- 特性
- dom,js-dom,navigator……都是挂载在window下的类属性和方法
- 自己写的都会成为window的属性/方法
- 一个窗口就是一个对象实例
结构
BOM (浏览器对象模型)
├── window (顶级对象)
│ ├── navigator (浏览器信息对象)
│ ├── location (地址栏对象)
│ ├── document (文档对象)
│ ├── history (历史记录对象)
│ └── screen (屏幕对象)
2. 垃圾回收机制
- 有这个可以不管内存回收,很多语言都有,会牺牲效率
3. 单线程与异步
- 单线程
- 不能同时做多件事
- 没啥影响,单线程有自己的好处:不会遇到多线程数据竞争问题(多个线程同时写入同一片内存)
- 不能同时做多件事
- 异步
- 处理IO的,提高效率
- 会遇到事件先于数据的问题,注意一下时序就行
- 处理IO的,提高效率
- 任务执行顺序
- 调用栈:同步JS任务
- 微任务队列:异步JS任务
- 宏任务队列:IO,定时器,DOM任务
- 栈走同步,队列走异步,异步在同步走完后追加
4. DOM树
- BOM的子对象
- 挂HTML标签用的,所有标签都是DOM的子属性