Skip to main content

一些笔记

JS Event Loop#

  • 后进先出
  • 队列 先进先出
  • 宏任务(MacroTask) script 全部代码、setTimeout、setInterval、setImmediate(浏览器暂时不支持,只有 IE10 支持,具体可见 MDN)、I/O、UI Rendering。
  • 微任务(MicroTask) Process.nextTick(Node 独有)、Promise、Object.observe(废弃)、MutationObserver(具体使用方式查看这里
  • 同步任务和异步任务 Javascript 单线程任务被分为同步任务和异步任务,同步任务会在调用栈中按照顺序等待主线程依次执行,异步任务会在异步任务有了结果后,将注册的回调函数放入任务队列中等待主线程空闲的时候(调用栈被清空),被读取到栈内等待主线程的执行。事件循环的本质

eventLoop

参考:https://juejin.cn/post/6844903764202094606?utm_source=gold_browser_extension%3Futm_source%3Dgold_browser_extension

闭包#

  • 某一作用域内某个变量在当前作用域外被访问时, 就会形成闭包
  • 此变量可以避开垃圾回收机制
  • 清除对应的引用即可使其重新回收释放

原型链#

  • 一句话概括, 就是对象的 __prot__, 也是对象原型的指针
  • 原型链的源头是 null
  • prototype 是函数独有的属性, 其作用是当前函数在作为构造器使用时, 指向构造后的实例的原型
  • 相同的原型数据共享内存共享

参考: http://www.ruanyifeng.com/blog/2011/06/designing_ideas_of_inheritance_mechanism_in_javascript.html