• new 和Object.create

    js中定义一个函数,会自动生成一个这个函数对应的显示原型对象这个对象会有一个constructor属性和一个隐式原型属性例如:function A(){}定义函数A后会有一个A.prototype此时,如果new 和Object.create(A.p...
  • 事件循环(node和浏览器)

    node基于 libUV(有自己的实现) timeri/o callbacksidle, preparepollcheckclose callbacks 四个宏队列(上二 下二)Timers QueueIO Callbacks QueueCheck ...
  • js语句执行前后判断

    判断执行顺序可以记住以下几个重点 1、promise中的回调函数立刻执行,then中的回调函数会推入微任务队列中,等待调用栈所有任务执行完才执行 2、async函数里的内容是放入调用栈执行的,await的下一行内容是放入微任务执行的 3、调用栈执行完...
  • 首屏白屏时间优化

    网络层面CDN 减少http请求(多次请求合一) 换成http2 文件压缩 优化css 延迟执行脚本 缓存 懒加载 渲染层面懒加载 防抖节流 骨架屏 SSR refhttps://wmshero.github.io/2022/03/23/%E9%A6...
  • 实现一个异步并发调度器

    12345678910111213141516171819202122class Scheduler { constructor(limit) { this.limit = li...
  • js继承

    es5继承的方式有很多种变种,但总体而言都是根据两种衍生出来的.这两种是通过SuperType.call(this, …args)进行的构造函数继承以及通过SubType.prototype = 父类实例/父类原型/纯净父类实例(Object.cre...
  • jsonp

    1234567891011121314151617181920212223242526272829function jsonp(url, param, cb) { // 构造query let query = url.index...
  • 事件流

    事件流描述的是从页面中接受事件的顺序 微软(IE)的事件流是事件冒泡流(event bubbling) 目标元素被点击,然后扩散到外围被点击而网景(Netscape)的事件流是事件捕获流(event capturing) 从最外层的body被点击,然...
  • 重导出

    export {defalut as Mydefalut, function2} from ***.js 重导出 / 聚合为了使模块导入变得可用,在一个父模块中“导入/导出”这些不同模块也是可行的。也就是说,你可以创建单个模块,集中多个模块的多个导出...
  • vue响应式

    Object.definePropertyWatcherObserverDeprefhttps://zhuanlan.zhihu.com/p/88648401 https://juejin.cn/post/6844903858850758670