
常见面试题
文章平均质量分 74
你才是向阳花
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
时间复杂度和空间复杂度是什么
如何衡量代码好坏,算法的考察到底是在考察什么呢?,就是我们后面要说到的时间复杂度和空间复杂度,也是学好算法的重要基石。确切的占内用存或运行时间无法进行计算,而且同一段代码在不同性能的机器上执行的时间也不一样,可是代码的基本执行次数,我们是可以算得出来的,这就是时间复杂度。平时表示算法复杂度主要就是用O(),读作大欧表示法,只用一个O()表示。原创 2024-04-24 16:01:30 · 995 阅读 · 0 评论 -
如何实现调接口控制 - 每次最多只能同时进行n个请求
题目:调接口时限制每次最多只能有两个接口同时请求,最终让所有接口都完成请求。思考:计数:每次调接口加一,调完减一,如果正在执行的接口 >= 2,则等待,否则继续执行如何阻止继续请求接口?第一步模拟一个调接口的方法做测试,设置一个定时器,promise延迟返回,模拟调接口的异步情况,等待时候做空定时器等待,满足条件在跳出定时器继续执行原创 2024-04-24 14:50:58 · 422 阅读 · 0 评论 -
内存泄露和内存溢出,有何区别,如何预防和解决
内存泄露和内存溢出是什么意思。内存泄漏是指程序在分配了内存之后,无法释放这些内存空间的现象。发生内存泄漏的代码可能会被多次执行,每次执行都可能导致一部分内存未被释放。随着程序的持续运行,这些未释放的内存会不断累积,最终可能导致程序性能下降或耗尽系统资源。内存泄漏通常是由程序中的错误代码、不正确的引用管理或资源未正确关闭等原因导致的。。内存溢出是指程序尝试分配更多的内存空间,但系统中已经没有足够的内存可供分配时所发生的情况。原创 2024-04-21 16:18:47 · 1511 阅读 · 0 评论 -
js 事件模型 事件捕获、事件冒泡
什么是事件捕获、事件冒泡事件冒泡(event bubbling)和事件捕获(event capturing)是指在 DOM 树中处理事件的两种不同方式。原创 2024-04-17 11:31:34 · 1655 阅读 · 0 评论 -
常见算法题目整理
【代码】常见算法题目整理。排序,手写代码,防抖节流原创 2024-04-11 19:12:33 · 236 阅读 · 0 评论 -
浏览器渲染,重排和重绘,如何优化
documentFragment不是真实DOM树的一部分,它的属性变化不会直接导致DOM树的更新,故频繁改动不会有性能问题。2. 尽量使用脱离文本流的动画主体,比如让它fixed 或者absolute,脱离文档流,将全局的重排转化为局部的重排,提升一部分性能;浏览器解析页面内容时会生成一个渲染树,当渲染树中部分或全部元素的尺寸、结构、内容发生变化是,浏览器就会出发重新生成渲染树的方法,进而进行重新渲染。一般情况下,动画都会频繁操作dom,会导致被操作的dom比较多的时候页面性能降低。原创 2024-03-29 16:03:40 · 410 阅读 · 0 评论 -
CDN是做什么的,CDN和DNS有什么异同?
用户向CDN全局负载均衡设备发出请求,CDN全局负载均衡设备会根据IP+url选择一台用户所属区域内的负载均衡设备,选择合适的空闲的服务器提供服务,用户就向这个服务器发出请求再返回所需内容。浏览器输入地址之后,先在浏览器缓存中查找是否有该域名,没有的话再去操作系统缓存中查找(host),路由器缓存,ISP的DNS服务器,根域名服务器,按此顺序查找。DNS解析之后,指向CDN专用的DNS服务器,会将域名解析权交给CNAME指向的CDN专用的DNS服务器,CDN就将全局负载均衡设备返回给用户。原创 2024-03-29 16:01:54 · 697 阅读 · 0 评论 -
前端性能优化
思考:从A页面 到B页面,会经历哪些步骤?跳转特别慢,如何优化?首先需要知道到底是哪一步特别慢,可以利用浏览器提供的钩子埋点,检测每个步骤的耗时:chrome提供的performance。原创 2024-03-28 20:10:28 · 1139 阅读 · 0 评论 -
webpack原理之-打包流程&热更新HMR
plugin即为插件,是一个扩展器,丰富webpack本身,增强功能 ,针对的是在loader结束之后,webpack打包的整个过程,它并不直接操作文件,而是基于事件机制工作,监听webpack打包过程中的某些节点,执行广泛的任务。webpack 在编译代码过程中,会触发一系列 Tapable 钩子事件,插件所做的,就是找到相应的钩子,往上面挂上自己的任务,也就是注册事件,这样,当 webpack 构建的时候,插件注册的事件就会随着钩子的触发而执行了。loader即文件加载器:用来预处理文件。原创 2024-03-24 21:11:57 · 1767 阅读 · 0 评论 -
AST抽象语法树&webpack逻辑解析
1. parsing:解析过程,词法分析、语法分析、构建AST;1) 词法分析:读取代码字符串,识别每一个单词及其种类,移除空格注释,按照预定规则合并成一个个的标识(token),产出一个token数组(令牌)2) 语法分析:读取令牌流,在语法约束下生成树形的中间表示,便于描述逻辑结构,给出了令牌流的结构表示,同时验证语法,如果有错误抛出语法错误。原创 2024-03-24 12:53:10 · 1227 阅读 · 0 评论 -
前端面试集中复习 - http篇
是浏览器的自动行为,是一种http请求方法,主要功能是一个预处理 预发送,浏览器会在请求之前浏览器主动发送一个体积较小,速度较快的请求,和服务器交互一种合适的方式传输数据,并利用服务器端的回复获取一部分服务器的状态和性能 判断浏览器是否需要做缓存等逻辑,检查访问权限,CORS等,可以顺利交互。MD5、SHA1等 => 单向不可逆,且输入敏感型,输出长度固定,所以对于数据的修改都会导致值的变化,所以可以做完整性校验,判断信息中途未经修改。握手一次就可以建立一个长链接,可以接收客户端的推送。原创 2024-03-20 20:28:38 · 961 阅读 · 0 评论 -
前端面试集中复习 - JS篇
对象在获取属性时会优先在自身属性查找,若找不到则会去原型链上继续找,(每个对象都有自己的【__proto__】顺序:对象本身 =>原型对象 =>直到null 终止查找)如果想要跳过自身属性使用原型链的属性,就可以使用 Object.prototype.toString.call() (见上条)。在一个函数中访问另一个函数作用域中变量的方法。提高性能,先提升,编译解析,后面多次使用到该变量或方法,就只需要去头部找到就可以,无需重复解析,这样就会更加灵活,允许补充定义,规避掉一些不必要的报错。原创 2024-03-19 12:09:42 · 1065 阅读 · 0 评论 -
前端面试集中复习 -HTML+CSS
HTML的文档类型声明,说明这个页面的用什么来编写的h5 有一个比较宽松的语法,基本上完全向后兼容。原创 2024-03-18 21:29:10 · 883 阅读 · 0 评论 -
vue插槽的几种方式
插槽的作用:可以实现子组件的个性化引用,复用更灵活,参数&层级 数据加工 个性化动态拼装。相当于在父子组件之间挖一个洞,在洞里进行连接和传递数据。在子组件中留一个空间,由父组件进行搭建。原创 2024-03-17 11:55:49 · 533 阅读 · 1 评论 -
es6语法及新特性
1.let 声明的变量具有块级作用域,这意味着它们只能在包含它们的代码块内访问。如果尝试在块级作用域之外访问 let 变量,将会抛出异常。2.const 用于定义常量,一旦被赋值,其值就不能改变。常量的赋值必须在声明时完成。复杂数据类型,如数组和对象,const只是指向该变量的存储地址,若修改复杂数据类型里的值是可以操作的。例如数组push操作,修改arr[0]=1,但不可对整个数组重新赋值var 和 let 的区别?1、var声明的变量往往会越域;let声明的变量有严格局部作用域。原创 2024-03-16 16:51:14 · 1176 阅读 · 1 评论 -
前端面试常见问题
1. 数据响应不一样,2.x 是getter setter 新的动态属性无法检测到,3.x是proxy,可以监听。2. 2.x用的双端diff算法,3.x是文本diff算法,类似git检测代码不一样时的方法。fiber 把原先不可中断的渲染过程变得可以中断,响应用户操作,再继续渲染,用户友好。函数内部变量可以在外部使用,问题:占用内存,容易造成内存泄漏,this指向 一个是静态的 一个是动态的。map会返回一个新的数组。1. type和instance的区别。5. 箭头函数和普通函数的区别。原创 2024-03-14 21:05:25 · 214 阅读 · 1 评论 -
渐进增强和优雅降级
而将那些被认为“过时”或有功能缺失的浏览器下的测试工作安排在开发周期的最后阶段,并把测试对象限定为主流浏览器(如 IE、Mozila 等)的前一个版本。内容是建立网站的诱因,有的网站展示它,有的则收集它,有的寻求有的操作,还有的网站甚至会包含以上的种种,但相同点是它们全都涉及到内容。(1)优雅降级是从复杂的现状开始的,并试图减少用户体验的供给;主要是针对低版本的浏览器进行页面重构,保证基本的功能情况下,再针对高级浏览器进行效果、交互等方面的改进和追加功能,以达到更好的用户体验。原创 2024-03-14 20:23:55 · 172 阅读 · 1 评论 -
从输入URL到页面加载发生了什么(DNS解析和优化,TCP连接)
浏览器在解析的过程中,如果遇到请求外部资源时,如图像、iconfont等,浏览器将异步请求下载该资源,并不会影响HTML文档进行加载,但是当文档加载过程中遇到js文件,HTML文档会挂起渲染过程,要等到文档中js文件加载完毕并解析执行完毕,才会继续HTML的渲染过程。CSS的文件加载不影响JS文件的加载,但是却影响JS文件的执行。DNS负载均衡:DNS可以返回一个合适的机器的IP给用户,例如可以根据每台机器的负载量,该机器距离用户的地理位置的距离等等,这种过程就是DNS负载均衡,又叫做DNS的重定向。原创 2024-02-27 15:22:02 · 937 阅读 · 0 评论 -
前端常见面试题,三次握手四次挥手
虚拟IP发送大量请求,服务器端收到之后就会返回确认信息,由于客户端不存在所以收不到反馈,只能重发,直到超时删除队列,在HTTP1.x 中,并发多个请求需要多个TCP 连接,浏览器为了控制资源会有6-8个TCP 连接都限制。同时,自己自己还要发送SYN请求信息,将SYN位置为1,Sequence Number为y;客户端发送连接请求报文段,将SYN位置为1,Sequence Number为x;服务器端将上述所有信息放到一个报文段(即SYN+ACK报文段)中,一并发送给客户端,服务器收到客户端的SYN报文段,原创 2023-08-11 10:46:03 · 340 阅读 · 1 评论