Docker基础入门笔记 发表于 2019-12-01 什么是DockerDocker 2019最新零基础教程Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 AUFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程 ... 阅读全文 »
JS内部排序和外部排序 发表于 2019-11-19 排序算法的有关文章已经很多了,他也是面试经常(100%)会问到的一个考点。这里主要是我来尝试自己针对网上各式的排序算法进行一份浅显的个人总结,从而温故知新。 内排序与外排序由于待排序的记录数量不同,使得排序过程中涉及的存储器不同,可将排序方法分为两大类:内部排序 与 外部排序 。 概念 内部排序: ... 阅读全文 »
一道面试题引发的思考5 发表于 2019-11-19 算法题1 找出字符串中连续出现最多的字符和个数 123'abcaakjbb' => {'a':2,'b':2}'abbkejsbcccwqaa' => {'c&apo ... 阅读全文 »
V8垃圾回收GC 发表于 2019-11-19 GC 全称 Garbage Collection ,即:垃圾回收。 计算机程序垃圾指的是什么呢?写过计算机程序的都知道,程序中无时无刻伴不随着变量的引用,赋值,运算等操作。于是乎存在着某些变量在使用过后,程序不会再用到它们,但是他们依然占据着一定的内存空间。内存中这样不会被程序再次使用的数据便可称 ... 阅读全文 »
你可能不知道的元属性new.target 发表于 2019-11-03 一道面试题有一个构造函数Class,且不定义全局变量, 需满足如下条件:123456789101112131415161718192021 function Class(name){ // 待实现 } 满足:const Class1 = new Class("张 ... 阅读全文 »
珠峰架构:手写vue-router源码 发表于 2019-11-01 先简单说一说,我们前端路由的实现主要是为了SPA应用的框架,框架开发都是单页应用,单页应用的特点就是跳转页面的时候的不刷新浏览器,那想要实现跳转页面不刷新浏览器的方式有两种:一种是通过hash的方式、另一种就是通过H5的history的api实现 👍👍👍👍👍模拟 Vue 手写一个 MV ... 阅读全文 »
React Fiber调度原理 发表于 2019-10-25 Fiber是对React核心算法的重构,2年重构的产物就是Fiber reconciler核心目标:扩大其适用性,包括动画,布局和手势。 分为5个具体目标(后2个算送的): 把可中断的工作拆分成小任务 对正在做的工作调整优先次序、重做、复用上次(做了一半的)成果 在父子任务之间从容切换(yie ... 阅读全文 »
理解 React Fiber 架构2 发表于 2019-10-23 单处理进程调度: Fiber 不是一个新的东西这个黑乎乎的界面应该就是微软的 DOS 操作系统 微软 DOS 是一个单任务操作系统, 也称为’单工操作系统‘. 这种操作系统同一个时间只允许运行一个程序. invalid s在《在没有GUI的时代(只有一个文本界面),人们是怎么运行多个程序的?》 的回 ... 阅读全文 »
Promise链式调用顺序引发的思考 发表于 2019-10-20 深度揭秘 Promise 微任务注册和执行过程有道题,得细说(一道异步相关的面试题)问题题目是这样的,为了更加语义化我将打印的字符串做了一些修改123456789101112131415161718192021222324252627 new Promise((resolve, reject) =& ... 阅读全文 »
JS中的广度与深度优先遍历 发表于 2019-10-07 深度优先遍历和广度优先遍历什么是深度优先和广度优先其实简单来说 深度优先就是自上而下的遍历搜索 广度优先则是逐层遍历, 如下图所示 1.深度优先 2.广度优先 两者的区别对于算法来说 无非就是时间换空间 空间换时间 深度优先不需要记住所有的节点, 所以占用空间小, 而广度优先需要先记录所有的节点 ... 阅读全文 »