摘要: 答案:主要是为了提升同级的比较效率的。 借用我在博客上另外一篇 Vue 2 渲染过程的图 其中核心比对逻辑就是新老节点头对头,头对尾,尾对头,尾对尾,都判定非 sameVnode,则拿着 key 去比对,若其中有被判定为 sameVnode,则复用节点。反之需要删除后再添加新节点。 function 阅读全文
posted @ 2020-06-03 15:06 Ever-Lose 阅读(444) 评论(0) 推荐(0) 编辑
摘要: 面试时候碰到这个问题,多数的回答都是比起 var,后两者不会变量提升,并且生效于块级作用域。但这还不够。 先上结论:let,var,const,三者都会变量提升。 var 是创建和初始化的过程都提升了,所以提前访问得到 undefined。 let 只是创建过程提升,提前访问报错 xx is not 阅读全文
posted @ 2020-06-03 15:01 Ever-Lose 阅读(809) 评论(0) 推荐(0) 编辑
摘要: 指标: 页面是否能正常访问?首次内容绘制(First Contentful Paint, FCP) 页面内容是否有用?首次有效绘制(First Meaningful Paint,FMP) 页面功能是否可用?可交互时间(Time to Interactive,TTI) 页面内容是否有用比较主观。难以规 阅读全文
posted @ 2020-06-03 14:28 Ever-Lose 阅读(2273) 评论(1) 推荐(1) 编辑
摘要: 核心模块 http,fs 等直接返回模块 / 开头加载全局的文件,再加载文件夹 ./ 和 ../ 开头先加载文件,再加载文件夹 非核心模块,路径里也没有 / ./ ../ 的则去 node_module 里加载文件夹 加载文件 X:X → X.js → X.json → X.node 加载文件夹: 阅读全文
posted @ 2020-06-03 14:08 Ever-Lose 阅读(862) 评论(0) 推荐(0) 编辑
摘要: websocket 建立过程 客户端请求 Connection: Upgrade 表示要升级协议 Upgrade: websocket 告诉服务器要升级为 websocket 协议 Sec-WebSocket-Version: 13 表示 websocket 的版本。如果服务端不支持该版本,需要返回 阅读全文
posted @ 2020-06-03 11:23 Ever-Lose 阅读(1260) 评论(0) 推荐(0) 编辑
摘要: 原题 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。 解法 题目说道在原数组上操作,不能出现新的数组。最开 阅读全文
posted @ 2020-06-03 11:20 Ever-Lose 阅读(164) 评论(0) 推荐(0) 编辑
摘要: vue 3 使用了 proxy api,有些手痒,就弄一个简单的结构玩玩吧。Proxy API 见 MDN Proxy 效果图 思路 依赖收集:Mvvm 初始化时劫持数据,并设置观察者 dep。模仿 vue 结构是在 get 时往观察者 dep 推入被观察者 watcher,然后 set 时让观察者 阅读全文
posted @ 2020-06-03 00:24 Ever-Lose 阅读(426) 评论(0) 推荐(0) 编辑