摘要:
首先我们先弄明白浏览器事件触发机制,分为三个阶段: 1. 事件捕获阶段:window 往事件触发处传播,遇到注册的捕获事件会触发 (addEventListener 的 true) 2. 事件目标处理函数:传播到事件触发处时触发注册的事件 (博主没搞懂这个阶段) 3. 事件冒泡阶段:从事件触发处往 阅读全文
摘要:
斐波拉契数列 a1 = 1 a2 = 1 an = an-1 + an-2 (n > 2时) 第 n 项 阅读全文
摘要:
对于普通对象,我们理解了它的 key-value 数据结构 和 原型链相关的知识 基本就可以了,但是如果想用好JS的对象还远远不够。 因为我们日常工作中,接触到的主要 API,几乎都是由这些对象提供的。 根据对象的来源来分类 宿主对象 内置对象 固有对象: 原生对象 普通对象 固有对象: 原生对象 阅读全文
摘要:
new new 做了什么事?1. 以 Object.protoype 为原型创建一个新对象 2. 以新对象为 this,执行函数的 [[call]] 3. 如果 [[call]] 的返回值是对象,那么,返回这个对象,否则返回第一步创建的新对象 call 实际上就是把方法挂在对象上,执行然后删除 ap 阅读全文
摘要:
推荐阅读:https://www.cnblogs.com/chengxs/p/10919311.html 在进行老生代的标记清除法回收以前,还会有一个新生代的垃圾回收算法执行。 新生代和老生代 所谓新生代,指的是新产生的对象;老生代就是经历过新生代垃圾回收后还“存活”下来的对象。 新生代的垃圾回收算 阅读全文
摘要:
推荐阅读:《JS 闯关记》之垃圾回收和内存管理 常见的垃圾回收有2种策略:标记清除 和 引用计数 标记清除 会遍历堆中所有的对象,然后标记活的对象,在标记完成后,销毁所有没有被标记的对象。 在标记大型对内存时,可能需要几百毫秒才能完成一次标记。这就会导致一些性能上的问题。 为了解决这个问题,2011 阅读全文
摘要:
推荐阅读:https://www.cnblogs.com/chengxs/p/10919311.html chrome内存限制 存在限制 Chrome限制了所能使用的内存极限(64位为1.4GB,32位为1.0GB),这也就意味着将无法直接操作一些大内存对象。 为何限制 Chrome之所以限制了内存 阅读全文
摘要:
推荐阅读:https://blog.hhking.cn/2019/04/02/babel-v7-update/ useBuiltIns false 1 "useBuiltIns": false, 此时不对 polyfill 做操作。如果引入 @babel/polyfill,则无视配置的浏览器兼容,引 阅读全文
摘要:
推荐阅读:源自Babel的多包管理工具:Lerna 对于多个模块的大型项目的协作管理,一般地有multirepo、monorepo和submodules等多种方式: multirepo是将多个模块分别分为多个仓库,早期的Babel(Babel6以前)使用的就是这种方式; submodules是借助g 阅读全文
摘要:
我们之前谈过浏览器的Event Loop:https://www.cnblogs.com/amiezhang/p/11349450.html 简单来说,就是每执行一个宏任务,就去执行微任务队列,直到清空,再执行下个宏任务。 那么NodeJs的Event Loop是怎么样的呢? NodeJS的Even 阅读全文