JS-1-理论

1. BOM

  1. 理论

    • BOM (Browser Object Model) 是浏览器对象模型
    • 顶级对象:window
      • window 对象是一个全局对象,也是 JavaScript 中的顶级对象
    • 特性
      • dom,js-dom,navigator……都是挂载在window下的类属性和方法
      • 自己写的都会成为window的属性/方法
      • 一个窗口就是一个对象实例
  2. 结构

text
BOM (浏览器对象模型)
├── window (顶级对象)
│   ├── navigator (浏览器信息对象)
│   ├── location (地址栏对象)
│   ├── document (文档对象)
│   ├── history (历史记录对象)
│   └── screen (屏幕对象)

2. 垃圾回收机制

  • 有这个可以不管内存回收,很多语言都有,会牺牲效率

3. 单线程与异步

  1. 单线程
    • 不能同时做多件事
      • 没啥影响,单线程有自己的好处:不会遇到多线程数据竞争问题(多个线程同时写入同一片内存)
  2. 异步
    • 处理IO的,提高效率
      • 会遇到事件先于数据的问题,注意一下时序就行
  3. 任务执行顺序
    1. 调用栈:同步JS任务
    2. 微任务队列:异步JS任务
    3. 宏任务队列:IO,定时器,DOM任务
      • 栈走同步,队列走异步,异步在同步走完后追加

4. DOM树

  1. BOM的子对象
  2. 挂HTML标签用的,所有标签都是DOM的子属性