自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 史上最全前端面试题及解答(一)

阿里巴巴1、请简要介绍一下Koa2中间件原理。Koa2中间件,主要由四大部分构成,application、context、request、response构成,在application中通过use来注册我们所要使用的中间件,在createServer的时候传入一个回调函数,在这个回调函数里面,依次来执行我们的中间件。那么就是说,当我们的server监听到相应的请求之后,就会去执行这些注册的中...

2020-04-25 20:46:48 748

原创 React setState的实现

当调用 setState 方法时,它会将要修改的状态添加到队列中,稍后通过 applyState 方法更新组件的状态。然后,我们定义一个 setState 方法,接收一个对象作为参数,该对象包含要修改的状态的键值对,并将该对象添加到队列中。下面是一个简单的实现。最后,我们需要在组件的构造函数中调用 applyState 方法,将初始状态应用到组件中。接着,我们需要定义一个更新状态的函数,它会从状态队列中取出最新的状态,并将其应用于组件。首先,我们需要定义一个状态队列,用来存储每次修改状态时的值和回调函数。

2023-04-03 18:02:25 130

原创 算法基础之完全理解归并排序

算法思想当我们要排序一个数组时,可以将这个数组先分段,例如将一个数组分两半,然后分成的两半继续裂变,直到没有可分的时候,再将数组归并起来,这个数组就有序了。其实现代码可以说是极其简单,下面我来为大家展示一下这个算法到底有多简单. function mergeSort(arr=[], start, end){ if(start >= end){ return; } let...

2020-04-19 16:50:16 193

原创 算法基础之完全理解希尔排序

背景希尔排序,作为八大排序算法之一,也是面试常考的算法。 它属于插入排序中的一种,总的看来,主要是通过缩小增量因子来实现对数组进行分组插入排序。这样看来,就很简单了。 如果我们将简单插入排序算法看作是增量为1的希尔排序,那么增量为n的希尔排序也就不难理解了。简单插入排序(最简版的希尔排序) function insertSort(arr){ for(let i=1; i < a...

2020-04-18 19:50:26 300

原创 经典面试题-顺时针打印矩阵

题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.分析:1、...

2020-04-18 15:18:14 171

原创 算法基础之最简洁的代码实现快速排序

背景面试的时候,大厂一般都会有算法面试。在这之中, 快排可以说是比较高频了。严格一点的面试官,都会要求用记事本写一个可以立即运行的快排程序。一般,如果时间充裕,大家是都能够写出来的,然而往往面试官不会给你留那么多的时间。10分钟没写出来,基本就下一题了,可以说压力非常大了,这就像一只拦路虎,挡住了大家进入大厂的梦想。接下来,我将为大家介绍最简洁的快排写法,帮助大家在规定时间,甚至于低于规定时间,...

2020-04-18 14:44:35 278

原创 算法基础之彻底理解冒泡排序及其深度优化

冒泡排序冒泡排序,作为最基础的算法之一,属于选择算法中的一种简单比较算法。其复杂度在最简单情况下为O(n), 最复杂情况下为O(n2),也常作为面试必考算法。本篇主要通过Javascript来实现冒泡排序以及其优化过程。1、冒泡排序 function popoSort(arr=[]){ if(arr.length <= 0) { return arr; } const...

2020-04-18 14:23:38 206

原创 React-Native之可配置化的图片资源预加载方案

背景在RN开发过程中,我们深受Rn包体积的扩大而困扰。为了优化包体积,最直接的方式莫过于减少本地资源的引用(将资源上传到云端)。然而虽然包的体积大大减小,但伴随而来的则是由于网络延时导致的加载缓慢,进而引发严重的体验问题,结果自然就是得不偿失。那么如何解决这样的问题呢,就需要一套可行的资源预加载方案。下面我们将着重讨论图片资源的预加载方案。解决方案1、图片预加载React-Native官方...

2020-04-17 19:49:12 1606 2

原创 对数的换底公式的推导

复习高中数学的时候,由于教材没有告知对数公式的推导,所以自己推导了一遍,贡献给大家!

2020-04-11 20:57:17 15142 2

原创 React-Native之如何迅速缩小包体积而不影响性能

React-Native作为reactjs的一个延伸,以H5和Native之间的中间地带角色存在于我们的项目中。 由于支撑了大量的业务场景,不容置喙的导致体积迅速增大,当然对RN来说,这也许不会导致严重的性能问题,甚至还有可能提升性能(因为大量的资源存在本地,所以加载较快),但是从节省用户流量、网络带宽的角度讲,还是能产生很大的用户价值。毕竟谁也不想在启动App的时候就耗费几兆甚至几十兆流量加载一...

2020-04-11 18:55:25 1644

原创 年薪百万顶级架构师-打卡第一天

年薪百万顶级架构师-打卡第一天

2018-10-14 11:12:04 3075 2

原创 代码重构的真正意义

代码重构,什么时候开始呢?当我们被自己写的Code逼上梁山的时候。 美国心理学家曾提出过一个”破窗理论“。认为:如果有人打坏了一幢建筑物的窗户玻璃,而这扇窗户又得不到及时的维修,别人就可能受到某些示范性的纵容去打烂更多的窗户。久而久之,这些破窗户就给人造成一种无序的感觉,结果在这种公众麻木不仁的氛围中,犯罪就会滋生、猖獗。 敲代码,何尝不是如此,正如一扇破窗,一...

2018-07-22 00:29:28 512 1

原创 递归算法应用-牺牲空间换取时间

输入一棵二叉树,判断该二叉树是否是平衡二叉树?解答: 1、算法如图,该算法运行时间15ms,空间耗用 8000k+   2、递归算法在帮我们解决实际问题的过程中,思路是非常清晰的,如此题的解法1)、递归判断二叉树的左子树和右子树是否都为平衡二叉树,若非,立马返回false,有效节省时间;2)、在条件一下,再行计算左子树与右子树的高度,同样递归计算,如果高度差小于2,返回true

2017-09-24 15:59:23 1892 2

空空如也

空空如也

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

TA关注的人

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