自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

杨兴元的博客

深耕web

  • 博客(111)
  • 收藏
  • 关注

转载 是什么尤大选择放弃Webpack?——vite 原理解析

今天分享一篇关于 vite 的文章。文章推荐词:三元同学最近也对 Vue3 有所关注,不过我更加感兴趣的是尤大新设计出来的一个小工具——vite。大家都知道,webpack 打包的时候会...

2020-05-06 13:27:51 9562 1

转载 前端性能优化之谈谈常见的性能指标及上报策略

背景性能优化是所有前端人的追求,在这条路上,方法多种多样。这篇文章,说一下可以怎样定义性能指标及上报。指标FP含义FP,全称 First Paint,翻译为首次绘制,是时间线上的第一个时...

2020-04-30 21:52:32 960

转载 不懂源码寸步难行?

如今前端开发的任职要求越来越高了,不仅要掌握 javascript,熟悉vue、react等各种框架,甚至连后端和 python 都得懂。估计小伙伴都出现过这样的困惑:从事前端行业多年,...

2020-04-27 10:00:00 604

转载 Vue3 新特性 Hook + TypeScript 实战图书管理项目

前言Vue3 Beta版发布了,离正式投入生产使用又更近了一步。此外,React Hook在社区的发展也是如火如荼。一时间大家都觉得Redux很low,都在研究各种各样配合hook实现的...

2020-04-26 20:35:05 4750

转载 Vue灵魂之问: 为什么说 Vue 的响应式体系可以精确到组件级别的更新?

前言我们都知道 Vue 对于响应式属性的更新,只会精确更新依赖收集的当前组件,而不会递归的去更新子组件,这也是它性能强大的原因之一。例子举例来说 这样的一个组件:<template...

2020-04-24 13:40:23 403

转载 优雅地证明 盛水容器问题

Leetcode 上第 11 号问题:盛最多水的容器,是一道非常经典的问题。不久前,一个同学还告诉我,他去字节跳动面试,考了一模一样的原题。这个问题本身很好理解:在坐标轴的每个坐标位置都...

2020-04-22 14:10:07 332

转载 当浏览器全面禁用三方 Cookie

这是 ConardLi 的第 99 篇原创,谢谢你的支持!苹果公司前不久对 Safari 浏览器进行一次重大更新,这次更新完全禁用了第三方 Cookie,这意味着,默认情况下,各大广...

2020-04-17 09:55:51 403

转载 Vue 的计算属性如何实现缓存?(原理深入揭秘)

前言很多人提起 Vue 中的 computed,第一反应就是计算属性会缓存,那么它到底是怎么缓存的呢?缓存的到底是什么,什么时候缓存会失效,相信还是有很多人对此很模糊。本文以 Vue ...

2020-04-14 11:41:01 2673

转载 曾经老师看不起的前端开发,如今却斩获多份 offer,最终走进阿里

相信大家看到这样疑惑的标题,一定会有很多的问号。什么是前端开发?为何会被老师看不起?又如何走进阿里的?别急,我们一个一个来回答。回答这些问题之前,我先做个自我介绍,我是来自中南林业科技...

2020-04-13 21:03:31 564

原创 2020三元同学春招阿里淘系、阿里云、字节跳动面经 & 个人成长经验分享

本人今年 211 本科大三下,掘金六级博主,最近投实习,一共投了三家,阿里的淘系和阿里云,字节跳动的抖音,当然都是找人内推的,结果简述如下:淘系二面通过...

2020-03-28 15:42:30 2256

原创 (建议精读)HTTP灵魂之问,巩固你的 HTTP 知识体系

上回就已经承诺过大家,一定会出 HTTP 的系列文章,今天终于整理完成了。作为一个 web 开发,HTTP 几乎是天天要打交道的东西,但我发现大部分人对...

2020-03-23 09:30:06 969

原创 三元同学2020字节跳动抖音架构组前端实习生面经(已到offer)

个人背景:武汉理工大学(211)计算机系大三下,准备找实习。最近找大佬内推,投了北京字节跳动,据说是非常核心的一个小组,要求很高。3月17日下午抖音...

2020-03-22 08:16:57 4169 1

转载 (建议收藏)TCP协议灵魂之问,巩固你的网路底层基础

先亮出这篇文章的思维导图:TCP 作为传输层的协议,是一个软件工程师素养的体现,也是面试中经常被问到的知识点。在此,我将 TCP 核心的一些问题梳理了一下,希望能帮到各位。001. 能不...

2020-02-29 11:01:55 690

原创 day047:Promise之问(二)——为什么Promise要引入微任务?

在这里,如果你还没有接触过 Promise, 务必去看看 MDN 文档,了解使用方式,不然后面很会懵。Promise 中的执行函数是同步进行的,但是里面存在着异步操作,在异步操作结束后会...

2020-01-13 08:48:00 1612 1

原创 day046: Promise之问(一)——Promise 凭借什么消灭了回调地狱?

问题首先,什么是回调地狱:多层嵌套的问题。每种任务的处理结果存在两种可能性(成功或失败),那么需要在每种任务执行结束后分别处理这两种可能性。这两种问题在回调函数时代尤为突出。Promis...

2020-01-12 09:23:00 366

转载 day045: 能不能简单实现一下 node 中回调函数的机制?

回调函数的方式其实内部利用了发布-订阅模式,在这里我们以模拟实现 node 中的 Event 模块为例来写实现回调函数的机制。function EventEmitter() { th...

2020-01-11 13:45:26 213 1

原创 day044:JS异步编程有哪些方案?为什么会出现这些方案?

关于 JS 单线程、EventLoop 以及异步 I/O 这些底层的特性,我们之前做过了详细的拆解,不在赘述。在探究了底层机制之后,我们还需要对代码的组织方式有所理解,这是离我们最日常开...

2020-01-10 12:12:58 204

原创 day043: nodejs中的异步、非阻塞I/O是如何实现的?

在听到 nodejs 相关的特性时,经常会对 异步I/O、非阻塞I/O有所耳闻,听起来好像是差不多的意思,但其实是两码事,下面我们就以原理的角度来剖析一下对 nodejs 来说,这两种技...

2020-01-09 08:05:12 551

原创 day042: 如何理解EventLoop——nodejs篇

nodejs 和 浏览器的 eventLoop 还是有很大差别的,值得单独拿出来说一说。不知你是否看过关于 nodejs 中 eventLoop 的一些文章, 是否被这些流程图搞得眼花缭...

2019-12-25 12:09:29 254

原创 day041:如何理解EventLoop——浏览器篇

干讲理论不容易理解,让我们直接以一个例子开始吧:console.log('start');setTimeout(() => { console.log(&#3...

2019-12-24 12:55:40 265

原创 day040: 如何理解EventLoop——宏任务和微任务篇

宏任务(MacroTask)引入在 JS 中,大部分的任务都是在主线程上执行,常见的任务有:渲染事件用户交互事件js脚本执行网络请求、文件读写完成事件等等。为了让这些事件有条不紊地进行,...

2019-12-23 10:44:59 280 1

原创 day039: 描述一下 V8 执行一段JS代码的过程?

前端相对来说是一个比较新兴的领域,因此各种前端框架和工具层出不穷,让人眼花缭乱,尤其是各大厂商推出小程序之后各自制定标准,让前端开发的工作更加繁琐,在此背景下为了抹平平台之间的差异,诞生...

2019-12-22 08:51:05 352

原创 day038:V8 引擎如何进行垃圾内存的回收?

JS 语言不像 C/C++, 让程序员自己去开辟或者释放内存,而是类似Java,采用自己的一套垃圾回收算法进行自动的内存管理。作为一名资深的前端工程师,对于JS内存回收的机制是需要非常清...

2019-12-21 08:52:53 223

原创 关于React Hooks和Immutable性能优化的实践,我写了一本掘金小册

最近,我的第一本小册《React Hooks 与 Immutable 数据流实战》在掘金成功上线。各位期待的粉丝朋友久等了,两个月之前的计划一直拖到了现在,也经常在 GitHub 的 i...

2019-12-19 08:32:22 1069

原创 (1.6w字)浏览器与前端性能灵魂之问,请问你能接得住几个?(上)

作为一个合格的前端工程师,浏览器相关的工作原理是我们进行性能优化的基石,我之前也强调过知识体系的重要性,这部分原理性的内容就是知识体系中的重要部分,必须牢牢掌握才能面对瞬息万变的实际场景...

2019-12-18 08:20:53 713 1

原创 day037: JavaScript内存机制之问——数据是如何存储的?

网上的资料基本是这样说的: 基本数据类型用栈存储,引用数据类型用堆存储。看起来没有错误,但实际上是有问题的。可以考虑一下闭包的情况,如果变量存在栈中,那函数调用完栈顶空间销毁,闭包变量不...

2019-12-16 09:38:21 234

转载 996的笼罩下,软件工程师的效率问题真的只是出在代码上吗?(兼谈网易事件)...

软件工程师的核心任务,就是写代码。如何提高代码质量,减少 bug,提高软件开发效率,是软件行业的老大难问题。为了解决这个问题,无数的技术方案或者工具被发明了出来。最典型的...

2019-11-27 13:49:29 335

转载 Webpack4打包机制原理解析

本文预计阅读时间:15分钟webpack是一个打包模块化 JavaScript 的工具,在 webpack里一切文件皆模块,通过 Loader 转换文件,通过 Plugi...

2019-11-27 13:49:29 542

转载 前端效能提升之 Chrome 插件推荐

Chrome 有丰富的插件, 可以扩展出很多功能, 提高我们的工作效率.这里给大家过滤了一些优质的插件, 包括三部分, 第一部分虽然与我们的开发不是直接相关, 但也会间接...

2019-11-26 22:12:20 276

原创 原生JS灵魂之问(下), 冲刺进阶最后一公里(附个人成长经验分享)

笔者最近在对原生JS的知识做系统梳理,因为我觉得JS作为前端工程师的根本技术,学再多遍都不为过。打算来做一个系列,一共分三次发,以一系列的问题为驱动,当然也会有追问和扩展...

2019-11-25 09:23:28 519

原创 day036: 能不能写一个完整的深拷贝?

上一篇已经解释了什么是深拷贝,现在我们来一起实现一个完整且专业的深拷贝。1. 简易版及问题JSON.parse(JSON.stringify());估计这个api能覆盖...

2019-11-23 12:18:26 237

原创 day035: JS中浅拷贝的手段有哪些?

重要: 什么是拷贝?首先来直观的感受一下什么是拷贝。let arr = [1, 2, 3];let newArr = arr;newArr[0] = 100;co...

2019-11-23 12:18:26 257 1

原创 day034: 谈谈你对JS中this的理解。

其实JS中的this是一个非常简单的东西,只需要理解它的执行规则就OK。在这里不想像其他博客一样展示太多的代码例子弄得天花乱坠, 反而不易理解。call/apply/bi...

2019-11-23 12:18:26 369

转载 day031: 能不能模拟实现一个new的效果?

new被调用后做了三件事情:让实例可以访问到私有属性让实例可以访问构造函数原型(constructor.prototype)所在原型链上的属性如果构造函数返回的结果不是引...

2019-11-23 12:18:26 202

转载 day033: 能不能实现一个 call/apply 函数?

引自冴羽大佬的代码,可以说比较完整了。Function.prototype.call = function (context) { let context = c...

2019-11-23 12:18:26 153

转载 day032: 能不能模拟实现一个 bind 的效果?

实现bind之前,我们首先要知道它做了哪些事情。对于普通函数,绑定this指向对于构造函数,要保证原函数的原型对象上的属性不能丢失Function.prototype.b...

2019-11-23 12:18:26 159

原创 day030: 能不能实现数组sort方法?

估计大家对 JS 数组的sort 方法已经不陌生了,之前也对它的用法做了详细的总结。那,它的内部是如何来实现的呢?如果说我们能够进入它的内部去看一看,理解背后的设计,会...

2019-11-06 14:35:03 171

原创 day029: 能不能实现数组splice方法 ?

splice 可以说是最受欢迎的数组方法之一,api 灵活,使用方便。现在来梳理一下用法:splice(position, count) 表示从 position 索引的...

2019-11-06 14:35:03 196

转载 day028: 能不能实现数组filter方法 ?

ECMA262规范如下:代码如下:Array.prototype.filter = function(callbackfn, thisArg) { // 处理数组类...

2019-11-06 14:35:03 151

转载 day027: 能不能实现数组 push、pop 方法 ?

参照 ecma262 草案的规定,关于 push 和 pop 的规范如下图所示:首先来实现一下 push 方法:Array.prototype.push = functi...

2019-11-06 14:35:03 107

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除