Fork me on GitHub

10 2020 档案

摘要:浏览器中的页面循环系统 1.要想在线程运行过程中,能接收并执行新的任务,就需要采用事件循环机制。示例如下: //GetInput //等待用户从键盘输入一个数字,并返回该输入的数字 int GetInput(){ int input_number = 0; cout<<"请输入一个数:"; cin> 阅读全文
posted @ 2020-10-31 22:27 馒头加梨子 阅读(112) 评论(0) 推荐(0) 编辑
摘要:V8 工作原理 1.支持隐式类型转换的语言称为弱类型语言,不支持隐式类型转换的语言成为强类型语言。 2.javascript 是一种弱类型、动态的语言。弱类型是指它支持隐式类型转换;动态是可以用同一个变量保存不同的类型。 3.javascript 的内存空间:代码空间、栈空间和堆空间。 4.闭包原理 阅读全文
posted @ 2020-10-30 22:25 馒头加梨子 阅读(106) 评论(0) 推荐(0) 编辑
摘要:浏览器工作原理与实践 宏观视角下的浏览器 1.线程与进程之间的关系有以下特点: 1.进程中任一线程执行出错,都会导致整个进程的崩溃 2.线程之间共享进程中的数据 3.当一个进程关闭之后,操作系统会回收进程所占的内存 4.进程之间的内容互相隔离 2.浏览器的发展: 1.单进程浏览器时代:所有模块(网络 阅读全文
posted @ 2020-10-29 23:02 馒头加梨子 阅读(160) 评论(0) 推荐(0) 编辑
摘要:前端使用 js 获取储存大小 前端使用 js 获取储存大小是一个很常见的需求,我们在这里整理一下各种使用场景。通过本文,您可以学到: 怎么使用 js 获取用户上传文件的大小 怎么使用 js 获取 cookie 或 session 的大小 怎么使用 js 获取用户上传文件的大小 主要原理是,上传文件的 阅读全文
posted @ 2020-10-28 21:26 馒头加梨子 阅读(2502) 评论(0) 推荐(0) 编辑
摘要:使用 abortController 终止 fetch 和 promise 在使用 fetch 和 promise 的时候,中途终止它们是一个很常见的需求,我们来看一看怎么实现。通过本文您可以学到: 怎么在外面终止 xhr 请求 abortController 是什么 怎么使用 abortContr 阅读全文
posted @ 2020-10-27 12:33 馒头加梨子 阅读(2456) 评论(0) 推荐(1) 编辑
摘要:装饰器 在 vue 中,我们一般使用vue-class-component来把 vue 里面组件的写法转变为类形式的,写法如下: <template> <div>{{ message }}</div> </template> <script type='ts'> import { Vue, Comp 阅读全文
posted @ 2020-10-26 11:06 馒头加梨子 阅读(904) 评论(0) 推荐(0) 编辑
摘要:深入理解class和装饰器 class 的出现大大简化了 javascript 中类的写法,而装饰器又是 class 里面非常实用的功能,但是老实说,它们都是语法糖,并没有引入新的功能,那它们的原理是怎样的呢?本文来一一探究。通过本文,您可以学到: class 语法糖的原理是什么? super 的原 阅读全文
posted @ 2020-10-25 23:16 馒头加梨子 阅读(329) 评论(0) 推荐(0) 编辑
摘要:vue2.x的patch方法和客户端混合 之前确实没自己看过 vue2.x 的 _update 这一块,导致今天被面试官问到了,现在回头补一下这方面的知识。 vue2.x的patch方法和客户端混合(上) 怎么创建 DOM 元素 我们首先来看怎么创建 DOM 元素,下面是 createElm 的源码 阅读全文
posted @ 2020-10-24 17:16 馒头加梨子 阅读(417) 评论(0) 推荐(0) 编辑
摘要:这一个月找工作的感悟 离职之后由于某些原因(医院二三事)我差不多到9月22号才开始找工作,到今天也差不多一个月了,结果是还没找到合适的公司,记一下自己的感悟吧。 大公司需要什么 我面试大公司的时候,记得遇到最多的问题是:xxx的原理是什么?有看过 echarts 是怎么实现的吗?ssr 的原理是什么 阅读全文
posted @ 2020-10-23 09:13 馒头加梨子 阅读(294) 评论(0) 推荐(1) 编辑
摘要:vue2.x的patch方法和客户端混合 之前确实没自己看过 vue2.x 的 _update 这一块,导致今天被面试官问到了,现在回头补一下这方面的知识。 从初始化 watcher 说起 我们知道,在声明了响应式数据之后,我们再实例化一个 watcher并调用响应式数据,才能把 watcher 添 阅读全文
posted @ 2020-10-22 22:27 馒头加梨子 阅读(241) 评论(0) 推荐(0) 编辑
摘要:vuex和普通的event-bus有什么不同 我们都知道,vuex 的底层实现原理其实就是 event-bus,那么它和普通的 event-bus 有什么不同呢?我们通过简单的源码一步步实现来搞懂这个问题。 参考资料:手写Vuex核心原理 event-bus 首先一个普通的 event-bus 是这 阅读全文
posted @ 2020-10-21 23:05 馒头加梨子 阅读(2831) 评论(0) 推荐(0) 编辑
摘要:待续 阅读全文
posted @ 2020-10-20 22:34 馒头加梨子 阅读(251) 评论(0) 推荐(0) 编辑
摘要:设计模式篇 1.简单工厂模式:简单工厂模式就是将创建过程单独封装起来。在前端常用这种模式来创建多个相同但互不相关的实例或者通过闭包来创立一个与外界隔离的环境,示例如下: // 出处:https://cn.vuejs.org/v2/guide/render-function.html#VNode-%E 阅读全文
posted @ 2020-10-19 23:00 馒头加梨子 阅读(132) 评论(0) 推荐(0) 编辑
摘要:使用 Chrome 插件拦截广告的原理 项目地址:chrome_plugin_zhihu_adblock 本文阅读起来可能需要先了解一些 Chrome 插件基础知识,通过本文您可以学到什么? chrome 插件拦截广告思考方法和一般原理 浏览器拦截 fetch 和 xhr 请求的方法 思路 网页上的 阅读全文
posted @ 2020-10-18 15:25 馒头加梨子 阅读(1306) 评论(0) 推荐(0) 编辑
摘要:算法篇 基础 数组:数组支持高效的读和写操作,但是在插入和删除操作的时候性能很低 链表:为了解决数组插入和删除低效的问题,出现了链表,但是链表的读操作性能很低 栈:一种先入后出的数据结构,可以用数组或链表实现 队列:一种先入先出的数据结构,可以用数组或链表实现 优先队列:一种正常进,但是按照优先级出 阅读全文
posted @ 2020-10-17 23:08 馒头加梨子 阅读(140) 评论(0) 推荐(0) 编辑
摘要:概述 最近复习算法,正好想到了之前的一道面试题,由此引发了许多思考。在此记录一下,供以后开发时参考,希望对其他人也有用。 一道面试题 面试题如下: // 要求实现一个 flatten 函数,有如下效果: // [1,2,[3,4,[5,6,7],8],9] => [1,2,3,4,5,6,7,8,9 阅读全文
posted @ 2020-10-16 22:36 馒头加梨子 阅读(109) 评论(0) 推荐(0) 编辑
摘要:Canvas 篇 1.基本的 canvas 一个基本的 canvas 由 canvas 标签和相应的 js 组成,其中 canvas 标签里面可以加入别的标签,表示如果不支持 canvas 标签的话就显示里面的内容;而 js 部分则通过 getContext 判断支不支持 canvas,从而实现各种 阅读全文
posted @ 2020-10-15 10:40 馒头加梨子 阅读(776) 评论(0) 推荐(0) 编辑
摘要:概述 近期面试问到了一些原理性的东西,所以打算把这个也做一个整理,记录下来,供以后开发时参考,相信对其他人也有用。 Echarts获取纵坐标刻度间距的博文请见这里 其实刚开始看Echarts的这段代码我也是一脸懵逼的,但是如果仔细看一下还是觉得挺简单的。 原理 首先,对于纵坐标,我们对它有一个期望的 阅读全文
posted @ 2020-10-14 11:38 馒头加梨子 阅读(1222) 评论(0) 推荐(0) 编辑
摘要:概述 说到 computed 和 watch 有什么不同,也许大多数人都知道:computed 是用现有数据生成一个新数据,并且能够被缓存;而 watch 是根据数据变化,执行一些回调函数,它有很多配置比如 deep、immediate 等。 大家也都知道,watch 只是源码里面 watcher 阅读全文
posted @ 2020-10-13 16:19 馒头加梨子 阅读(2136) 评论(0) 推荐(0) 编辑
摘要:概述 最近非常想做一个服务端渲染项目,那就打算从尤大的vue-hackernews-2.0开始入手呗。其实我之前试图改造过这个项目,但是因为当时很菜所以失败了。现在我觉得有能力改造好,那就开始呗。把心得记录下来,供以后开发时参考,相信对其他人也有用。 上篇:vue-hackernews-2.0 升级 阅读全文
posted @ 2020-10-12 00:01 馒头加梨子 阅读(232) 评论(0) 推荐(0) 编辑
摘要:概述 最近非常想做一个服务端渲染项目,那就打算从尤大的vue-hackernews-2.0开始入手呗。其实我之前试图改造过这个项目,但是因为当时很菜所以失败了。现在我觉得有能力改造好,那就开始呗。把心得记录下来,供以后开发时参考,相信对其他人也有用。 mode webpack4带来的第一个大变化就是 阅读全文
posted @ 2020-10-11 23:39 馒头加梨子 阅读(327) 评论(0) 推荐(0) 编辑
摘要:运维篇 nginx 1.搭建站点: server { listen 8080; server_name xx_domain; charset utf-8; access_log logs/xx_domain.access.log access; location / { root www; inde 阅读全文
posted @ 2020-10-10 22:33 馒头加梨子 阅读(464) 评论(0) 推荐(0) 编辑
摘要:概述 说到 vue 的响应式原理,我们都能很快答出数据劫持和发布者订阅者模式,通过 Object.defineProperty 来劫持 getter 和 setter,在 getter 的时候订阅依赖,在 setter 的时候发布响应执行依赖,从而达到响应式的目的。 但是如果深入一点,它是怎么收集、 阅读全文
posted @ 2020-10-09 16:55 馒头加梨子 阅读(503) 评论(0) 推荐(0) 编辑
摘要:概述 今天我无意中看到了只执行一次事件的简便方法,记录下来,供以后工作时参考,相信对其他人也有用。 一般方法 先来回顾一下一般方法: const $once = function (target, event, fn) { const that = this; function newFn (... 阅读全文
posted @ 2020-10-08 23:14 馒头加梨子 阅读(363) 评论(0) 推荐(0) 编辑
摘要:概述 Vue3的一个重大升级就是使用 proxy 来做数据劫持,我们来体验一下用 proxy 是怎么做数据劫持的,供以后工作时参考,相信对其它人也有用。 Vue2.x的缺点 Vue2.x是使用Object.defineProperty来做数据劫持的,但是它有以下三个缺点: 1.不能劫持数组的变化,需 阅读全文
posted @ 2020-10-05 23:34 馒头加梨子 阅读(944) 评论(0) 推荐(0) 编辑
摘要:概述 我们有很多打包工具,比如 webpack、rollup等等。但是如果我只想打包一个 js 文件呢?用他们会不会太重度了?其实完全没必要,只使用babel就可以打包了。 很多小型库都是这样打包的,比如:file-loader,css-loader 方法 先安装@babel/core和@babel 阅读全文
posted @ 2020-10-04 08:37 馒头加梨子 阅读(2024) 评论(0) 推荐(1) 编辑
摘要:概述 我还记得之前调试官网的 ckeditor 编辑器,每次改完编辑器包,然后发布编辑器包,然后在官网里面引入这个包进行调试,如果有问题,重新改动、发布编辑器包,继续引入,真的浪费了好多时间。其实类似这种场景都可以使用npm link,能够极大地简化操作。记录下来,供以后开发时参考,相信对其他人也有 阅读全文
posted @ 2020-10-03 22:11 馒头加梨子 阅读(635) 评论(0) 推荐(0) 编辑
摘要:概述 最近面试被问到了 webpack 热加载的实现原理,所以去研究了一下,记录下来供以后开发时参考,相信对其它人也有用。 热加载原理 这一部分我没有去看源码,只是看了别人的分析理清了一下思路,参考资料: Webpack HMR 原理解析 从零实现webpack热更新HMR 主要流程如下: 1.首先 阅读全文
posted @ 2020-10-02 22:28 馒头加梨子 阅读(1994) 评论(0) 推荐(1) 编辑
摘要:概述 面试中被问到了服务端渲染的数据流动,没答上来,复盘整理一下,供以后工作时参考,相信对其他人也有用。 vue ssr 指南 数据流动 主要分以下几种情况: 1.初次打开页面时,会在服务端获取 matched 路由,然后执行他们的 asyncData 方法,这个方法会把获取的数据存放到 vuex 阅读全文
posted @ 2020-10-01 23:21 馒头加梨子 阅读(386) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示