blog
blog copied to clipboard
大前端技术为主,读书笔记、随笔、理财为辅,做个终身学习者。
Bumps [async](https://github.com/caolan/async) from 2.6.3 to 2.6.4. Changelog Sourced from async's changelog. v2.6.4 Fix potential prototype pollution exploit (#1828) Commits c6bdaca Version 2.6.4 8870da9 Update built files 4df6754 update changelog 8f7f903...
![](https://upload-images.jianshu.io/upload_images/12890819-c95a73d2bbf47341.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) > 复习前端面试的知识,是为了巩固前端的基础知识,最重要的还是平时的积累! ## 开源项目 - [https://github.com/InterviewMap/CS-Interview-Knowledge-Map](https://github.com/InterviewMap/CS-Interview-Knowledge-Map) 建立最好的面试地图。目前的内容包括js、网络、浏览器相关、性能优化、安全性、框架、git、数据结构、算法等。 - [https://github.com/Advanced-Frontend/Daily-Interview-Question](https://github.com/Advanced-Frontend/Daily-Interview-Question) 每天搞定一道前端大厂面试题,祝大家天天进步,一年后会看到不一样的自己。 - [https://lucifer.ren/fe-interview](https://lucifer.ren/fe-interview) 宇宙最强的前端面试指南。 - [https://github.com/stone0090/alibaba-interview](https://github.com/stone0090/alibaba-interview) 阿里巴巴面试资源汇总。 - [https://github.com/haizlin/fe-interview](https://github.com/haizlin/fe-interview) 前端面试每日 3+1,以面试题来驱动学习,提倡每日学习与思考,每天进步一点!每天早上5点纯手工发布面试题(死磕自己,愉悦大家)。 - [https://github.com/ElemeFE/node-interview/tree/master/sections/zh-cn](https://github.com/ElemeFE/node-interview/tree/master/sections/zh-cn) 如何通过饿了么大前端的面试, 职位是 2~3 年经验的 Node.js 服务端程序员 (并不是全栈)。...
![](https://upload-images.jianshu.io/upload_images/12890819-315c52560ec6fc81.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 最近在做一个支持多进程请求的 Node 服务,要支持多并发请求,而且请求要按先后顺序串联同步执行返回结果。 对,这需求就是这么奇琶,业务场景也是那么奇琶。 需求是完成了,为了对 Node.js 高并发请求原理有更深一些的理解,特意写一篇文章来巩固一下相关的知识点。 ## 问题 Node.js 由这些关键字组成: **事件驱动、非阻塞I/O、高效、轻量**。 于是在我们刚接触 Node.js 时,会有所疑问: - 为什么在浏览器中运行的 JavaScript 能与操作系统进行如此底层的交互? - Node 真的是单线程吗? - 如果是单线程,他是如何处理高并发请求的? - Node 事件驱动是如何实现的? 下来我们一起来解秘这是怎么一回事! ##...
## ![](https://upload-images.jianshu.io/upload_images/12890819-4c1291cd00e93446.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ## 前言 最近随着复杂的自动化任务的增加,robot 项目出现了很多问题,经常要人工智能,在上次清远漂流的时候,就是经常报警,而且基本都是我人工智能解决的,厉害吧 🤩。 ![](https://upload-images.jianshu.io/upload_images/12890819-dbfa676b21bdf5a3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 "image.png") 这些问题包括:**经常卡住,运行慢、卡,浏览器关不掉,CPU 和 内存 经常是满载运行的,特别是 CPU ,经常是 99% 的使用率。** Chromium 消耗最多的资源是 CPU,一是渲染需要大量计算,二是 Dom 的解析与渲染在不同的进程,进程间切换会给 CPU 造成压力(进程多了之后特别明显)。 其次消耗最多的是内存,Chromium 是以多进程的方式运行,一个页面会生成一个进程,一个进程占用 30M 左右的内存,大致估算 1000 个请求占用...
![](https://upload-images.jianshu.io/upload_images/12890819-9f1150cb63f63061.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 亲爱的猫哥,很高兴能和你一起度过 2021,这是一封从 2022 年的我写给你的信,请查收。 2021 年过得十分矛盾和起伏,内心很是焦虑,总想着如何改变,也做出很大的改变。 我觉得 2021 年,如果要用一个关键词来总结一年成长的话,关键词应该是:**破局**。 阅读本文之前,可以先阅读我的:[我的 2020 年终总结 - 成长不及预期的 3 年之痒](https://mp.weixin.qq.com/s/qNxmvFxLCQVst4keREc72w),坐看猫哥如何被打脸 😅。 ![](https://upload-images.jianshu.io/upload_images/12890819-ab441c95e9ff5129.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ## 回顾 2021 目标 - 用 Vue3.0 重构我的开源博客项目 - **完成** 这个算完成的比较好的一个目标了,在五一期间花了几天时间,把项目从...
![](https://upload-images.jianshu.io/upload_images/12890819-7499d80294480abd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) Hello,大家好,你们的猫哥又上线了,有段时间没更新文章了,因为最近在跳槽,所以一直没空写文章,所以耽误了。 先说明一下,猫哥是做前端的,一直在广州工作,所以面试的公司基本都是广州的大中小厂,也面试了 3 个深圳的大厂。 猫哥是 8 月下旬裸辞的,到 11 月 3 号才入职新公司,过程经历了 2 个月,9 月初开始就一直在面试大中小厂,每一轮算一场的话,面试了差不多 40 场,每个岗位走完全部流程大概要三到四场面试,自我介绍都说吐了。 ## 方向 猫哥已经工作 4 年了,再过 3 年就 30 了,30 以后可能很少在一线写代码了吧,一般都到前端 leader 或者管理层了吧。 所以这次找工作主要看公司发展是不是在高速发展中、能不能有比较多的机会、职位的晋升、所做的业务是不是核心业务。所幸,这次找的公司就是这个方向的,最后定的级别还比较高,待遇给得也很不错。...
![](https://upload-images.jianshu.io/upload_images/12890819-e6a502fd3b53e0c4.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ## 一. 区分进程和线程 很多新手是区分不清线程和进程的,没有关系。这很正常。先看看下面这个形象的比喻: > 进程是一个工厂,工厂有它的独立资源-工厂之间相互独立-线程是工厂中的工人,多个工人协作完成任务-工厂内有一个或多个工人-工人之间共享空间 如果是 windows 电脑中,可以打开任务管理器,可以看到有一个后台进程列表。对,那里就是查看进程的地方,而且可以看到每个进程的内存资源信息以及 cpu 占有率。 ![image](http://upload-images.jianshu.io/upload_images/12890819-f63f18ef5513c491?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 所以,应该更容易理解了:进程是 cpu 资源分配的最小单位(系统会给它分配内存) 最后,再用较为官方的术语描述一遍: * 进程是 cpu 资源分配的最小单位(是能拥有资源和独立运行的最小单位) * 线程是 cpu 调度的最小单位(线程是建立在进程的基础上的一次程序运行单位,一个进程中可以有多个线程) 提示: * 不同进程之间也可以通信,不过代价较大 * 现在,一般通用的叫法:单线程与多线程,都是指在一个进程内的单和多。(所以核心还是得属于一个进程才行)...
![](https://upload-images.jianshu.io/upload_images/12890819-9cb58e66214a3929.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) > * 原文地址:[https://dev.to/lydiahallie/javascript-visualized-event-loop-3dif](https://dev.to/lydiahallie/javascript-visualized-event-loop-3dif) > * 原文作者:Lydia Hallie > * 译者:夜尽天明 ## 前言 对于事件循环,这是每个 JavaScript 开发人员必然会遇到或者需要理解的内容之一。 但是对于初级开发者来说,理解起来可能有些混乱。 因为我是一个视觉学习者,所以我通过低分辨率 gif 图的可视化方式来帮助你理解它。 ## 事件循环 但是首先,事件循环是什么,为什么要关心呢? JavaScript 是 **单线程的**:一次只能运行一个任务。 通常,这没什么大不了的,但是现在想象你正在运行一个耗时 30 秒的任务。 在此任务中,我们等待...
![](https://upload-images.jianshu.io/upload_images/12890819-891eae6ecef8a506.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) > 复杂度分析是整个算法学习的精髓,只要掌握了它,数据结构和算法的内容基本上就掌握了一半了。 ## 1. 什么是复杂度分析 ? 1. 数据结构和算法解决是 “如何让计算机更快时间、更省空间的解决问题”。 2. 因此需从执行时间和占用空间两个维度来评估数据结构和算法的性能。 3. 分别用时间复杂度和空间复杂度两个概念来描述性能问题,二者统称为复杂度。 4. 复杂度描述的是算法执行时间(或占用空间)与数据规模的增长关系。 ## 2. 为什么要进行复杂度分析 ? 1. 和性能测试相比,复杂度分析有不依赖执行环境、成本低、效率高、易操作、指导性强的特点。 2. 掌握复杂度分析,将能编写出性能更优的代码,有利于降低系统开发和维护成本。 ## 3. 如何进行复杂度分析 ? ### 3.1...
![](https://upload-images.jianshu.io/upload_images/12890819-1a8cacfa5e6188c5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ## 1. 前言 > 如果你要用一种工具用几年,甚至十几年,那就现在开始用它,用的烂熟,那你可以将来的工作中节省掉很大一部分的时间。 我还记得 18 年的时候,有一次小组开会,当时的老大说我的工作效率不够高,他见我当时不服的表情,然后他又当场问我:浏览器的快捷键记得有几个 ? 比如:向下滚动网页,一次一个屏幕的快捷键是 ?打开新的标签页,并跳转到该标签页的快捷键是 ? 注意,问得是几个!我当时还真答不上来几个,他问得那两个,我刚好又没答对。 我们应该有一个目标:**尽量只操作键盘即可满足我们对浏览器的日常使用,摆脱鼠标的依赖,因为只操作键盘是最快的方式,还是高逼格的操作**。 特别是程序员,每天少敲几个键,少动几下肩膀,长年累计下来,都能长命几岁! 如本文题目,本文将分为 3 部分讲解内容,由浅入深。 - 高效快捷键 - 高效扩展插件 - 高效调试技巧 ## 2. 高效快捷键 说明:**下面表格中加粗的快捷键,都是笔者觉得非常常用,但很多人还不会用的,所以加粗突出重要性**。 ###...