摘要: Vue 的 diff 算法分析 dom 的 diff 算法,时间复杂度会达到o(n3),如果在框架里使用,性能会很差。 Vue 使用的 diff 算法,时间复杂度为o(n),简化了很多操作。 同类型的VNode,会用才会进行比对,判断是否同类型使用sameVnode方法 比对时使用patchVnod 阅读全文
posted @ 2020-04-22 14:56 李啸虎 阅读(617) 评论(0) 推荐(0) 编辑
摘要: leetcode-cn链接 https://leetcode-cn.com/problems/substring-with-concatenation-of-all-words/ 一、题目 给定一个字符串 s 和一些长度相同的单词 words。找出 s 中恰好可以由 words 中所有单词串联形成的 阅读全文
posted @ 2020-03-13 23:52 李啸虎 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 上篇文章说了一下js中定时器 setTimeout 和 setInterval 的执行原理。这两个计时器都是异步执行的,这部分体现了js的执行过程。 js自身执行的模型是事件循环(event loop)。 js在启动时会创建一个循环,每次循环都会去任务队列(task query)里找要进行的任务。当 阅读全文
posted @ 2017-12-04 18:59 李啸虎 阅读(864) 评论(0) 推荐(0) 编辑
摘要: setInterval和setTimeout是前端开发中经常会用到的定时器,下面对其原理进行一下分析。 javascript是单线程的,一个javascript运行时包含了一个待处理的消息队列,每条消息都代表要运行的函数。当调用栈为空时,会从队列里取出条消息进行处理。 setTimeout方法包含两 阅读全文
posted @ 2017-02-09 17:53 李啸虎 阅读(2456) 评论(0) 推荐(0) 编辑
摘要: 此分类为学习ECMAScript 6的笔记,主要参考《ECMAScript 6 入门》 ECMAScript6对字符串进行了一系列的扩展。 字符串遍历器接口 ECMAScript6为字符串提供了遍历器接口,使得字符串可以进行for...of...循环。 这个遍历器可以识别大于 0xFFFF 的码点, 阅读全文
posted @ 2017-02-09 16:34 李啸虎 阅读(620) 评论(0) 推荐(0) 编辑
摘要: 此分类为学习ECMAScript 6的笔记,主要参考《ECMAScript 6 入门》 ES6允许按照一定的模式,从数组和对象中提取值,对变量进行赋值。 数组的解构赋值 本质上属于模式匹配,只要等号两边模式相同,便可进行赋值。 另一种情况是不完全解构,等号左边的模式之匹配一部分等号右边的模式,这样依 阅读全文
posted @ 2017-02-09 16:34 李啸虎 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 此分类为学习ECMAScript 6的笔记,主要参考《ECMAScript 6 入门》 let命令,用来声明变量,所声明的变量只在let所在的代码块内有效。就是我们常说的“块级作用域”。 不存在变量提升,所以一定要在声明之后才能使用。 暂时性死区。只要块级作用域内存在let声明的变量,该变量在该区块 阅读全文
posted @ 2016-10-11 18:48 李啸虎 阅读(190) 评论(0) 推荐(0) 编辑