2022春招前端实习面经【美团、钉钉、快手、字节、招行、百度、拼多多、腾讯】(未完)

面试心得

  1. 准备时间: 准备春招的话一般寒假就可以开始了。算法练习(leetcode 热题100企业题库CodeTop)、基础知识复习「时间不够可以直接看面经」(计网12OSHTML、CSSJS等)
  2. 简历: 简历可以使用 超级简历。个人因为颜值方面为减分项所以不放照片。简历内容(教育经历、专业技能、科研经历、项目经历、实习经历、竞赛奖项),这几个板块越能突出个人能力和区分度的放在越前面。一些关键字可以加个粗(比如论文第一作者、专利发明人、项目负责人、专业排名等)。项目如果开源或者有部署,可以在简历上放代码地址或者访问网址。如果有高质量的博客账号也可以在简历中放上博客主页。
  3. 开始时间: 最早的一批应该在1、2月份,外企(亚马逊、微软、ebay、hulu)和一些大厂的提前批(BAT)会陆续开始。可以在3月初先投一些小厂来熟悉一下面试的流程以及注意事项。因为大厂的面试一般会记录面试评价,如果没有准备好或者不熟悉流程和注意事项贸然投递大厂面试,很有可能会留下不好的面评,其他面试官是可以看到面评记录的,会影响后续的面试成绩。在积累了一定的经验之后,3月中下旬可以开始发力,尝试一些开放了校招系统的大厂了,这时候会从容很多。
  4. 投递简历注意事项: 某些大厂的核心部门的面试非常卷,会有非常多人投递此类部门,为了降低面试成本,可能会存在卡学历现象(比如某部门不招双非院校学生)。
  5. 面试过程: 请对于每次面试都要仔细地做复盘。近几年因为疫情原因一般是线上面试,可以用手机提前开好录音功能后再开始面试。每次面试完都可以通过听录音来复盘面试的整个流程,并重新审视自己当时回答的答案,总结出每个公司的面经,以及自己做的不够好的地方,不断迭代。
  6. oc、意向书: 不要认为拿到oc(口头offer)或者意向书就问了,然后直接开摆。2022春招真的是给所有涉世未深的同学们一顿社会的毒打。大厂超发oc,你拒了中小厂的offer后告诉你,“不好意思,因为公司人才结构调整,我们部门没hc了”。有多少人因为等着阿里的offer拒了美团的、字节的,然后发现阿里锁hc?!。包括拿到意向书,也有可能被撕毁。所以请尽量多拿两个offer,最后再拒掉也不迟,毕竟应聘者和公司,都是池塘里的鱼。
  7. 拒掉offer又后悔: 如果你因为某些原因把offer拒掉了。但是后来又有点后悔。这时不妨联系一下hr(真的不好意思,因为学校/导师/实验室/疫情等等原因我未接受贵公司的offer,但是现在我这边的问题解决了,还是非常想来贵公司的,求给个机会补救一下)。说不定会出现转机(好多同学在阿里锁hc之后把之前拒掉的offer舔回来的案例)。
  8. hr面通用模板点击跳转。这部分内容比较通用,所以就统一放心得里了。

美团-到店事业群-餐饮SaaS

总体来说美团的面试相对还是对于八股的考察比较多的,但较为简单和基础,面试官也很温柔,比较友好。算法题也是比较基础的(可能前端考察的算法题较后端会简单一些)。

一面复盘记录

JS/前端杂项
  • 是否有使用过除了Vue以外的一些框架
  • 闭包的作用及其产生的原理

闭包有三个特性:
函数嵌套函数。
函数内部可以引用外部的参数和变量。
参数和变量不会被垃圾回收机制回收。

闭包的好处:
希望一个变量长期存储在内存中。
避免全局变量的污染。
私有成员的存在。

闭包的缺点:
常驻内存,增加内存使用量。
使用不当会很容易造成内存泄露。

  • JS垃圾回收机制有哪些

标记清除法
当变量进入执行环境时标记为“进入环境”,当变量离开执行环境时则被标记为“离开环境”,被标记为“进入环境”的变量是不能被回收的,因为它们正在被使用,而标记为“离开环境”的变量则可以被回收。「闭包中返回的函数就是进入环境中的,并未离开环境」
引用计数法
统计引用类型变量声明后被引用的次数,当次数为0时,该变量将被回收。但是引用计数的算法有一个缺点:循环引用。
在现代浏览器中,JS使用的垃圾回收机制是标记清除法,所以我们无需再担心循环引用带来的问题。

  • 数据类型「7」,如何查看变量数据类型「3」

七种数据类型:Number、String、Boolean、Null、undefined、symbol、object「常用的有Array、function、Date」

查看变量数据类型:
用typeof:typeof x 「typeof A => Number」
用instanceof:x instanceof type 「(A instanceof Number) => true」object instanceof constructor:instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。
用变量的constructor属性:x.constructor === Number「null和undefined没有constructor属性」

  • 变量在内存中的存储方式

基本数据类型:直接将值保存在栈内存中
引用数据类型:将地址保存在栈内存中,指向堆内存的空间

操作系统
  • 死锁产生的原因,条件有哪些

死锁是指多个进程在运行过程中因争夺资源而造成的一种僵局,若无外力作用则进程都无法向前推进
原因:不可剥夺资源的竞争、进程间推进顺序非法
四个必要条件「互斥、请保、不剥、环路」
互斥条件「一段时间内资源仅供一个进程所使用」
请求和保持条件「进程一边请求资源一边保持已有资源」
不剥夺条件「进程已经获得的资源自能由自己释放,未使用完之前不能被剥夺」
环路等待条件「存在一个进程-资源的环形链」

  • 进程间的通信方式有哪些

管道:上一阶段的输出作为下一阶段的输入「匿名管道/命名管道」
消息队列:按照独立的信息体进行消息发送
共享内存+信号量:申请一块虚拟内存空间,不同进程通过虚拟地址映射到物理地址进行访问,通过信号量解决冲突问题。
套接字

  • 怎么在内存中做寻址(物理地址到逻辑地址)「段地址+偏移地址?」

先通过逻辑地址和页面大小得到页号和页内偏移
逻辑地址/页面大小=页号
逻辑地址 mod 页面大小=页内偏移
通过页号查找页表得到对应的物理区块
物理地址=物理区块x页大小+页内偏移

计算机网络
  • TCP和IP的原理

当HTTP发起一个消息请求时,应用层、传输层、网络层和链路层的相关协议依次对该消息请求附加对应的首部,这个首部标明了协议应该如何读取数据,最终在链路层生成以太网数据包,以太网数据包通过物理介质传输到目的主机,目的主机接收到以太网数据包以后,再一层一层采用对应的协议进行拆包,最后把应用层数据交给应用程序处理。简单来说,就是"发送请求时,封包,接收数据时,拆包。"

数据段:TCP 数据流中的信息;
数据包:IP 和 UDP 等网络层以上的分层中包的单位;
数据帧:数据链路层中包的单位;

  • TCP保证可靠的方法

而可靠的传输服务是指,能够把数据准确可靠地传给对方。
3次握手和4次挥手——建立连接
校验和——防止数据损坏
应答与超时重传机制——防止丢包
序列号——保证顺序接收数据
滑动窗口——通过发送端和接收端流量进行控制
拥塞控制——慢启动算法,拥塞窗口

  • 解释一下滑动窗口原理

TCP 利用滑动窗口实现流量控制。流量控制是为了控制发送方发送速率,保证接收方来得及接收。
TCP会话的双方都各自维护一个发送窗口和一个接收窗口。接收窗口大小取决于应用、系统、硬件的限制。发送窗口则取决于对端通告的接收窗口。接收方发送的确认报文中的window字段可以用来控制发送方窗口大小,从而影响发送方的发送速率。将接收方的确认报文window字段设置为 0,则发送方不能发送数据。当发送方获取window=0的报文后需要过一段时间再发送一个试探报文来获取当前接收窗口的空余大小,再开始发送报文。在这里插入图片描述

  • 解释一下拥塞控制

慢开始
把拥塞窗口 cwnd 设置为一个最大报文段MSS的数值。而在每收到一个对新的报文段的确认后,把拥塞窗口增加至多一个MSS的数值。每经过一个传输轮次,拥塞窗口 cwnd 就加倍。 为了防止拥塞窗口cwnd增长过大引起网络拥塞,还需要设置一个慢开始门限ssthresh状态变量。
当 cwnd < ssthresh 时,使用慢开始算法。「cwnd指数增加」
当 cwnd > ssthresh 时,停止使用慢开始算法而改用拥塞避免算法。「cwnd线性上升」
当 cwnd = ssthresh 时,既可使用慢开始算法,也可使用拥塞控制避免算法。
拥塞避免
让拥塞窗口cwnd缓慢地增大,每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1,而不是加倍。这样拥塞窗口cwnd按线性规律缓慢增长。
无论在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(其根据就是没有收到确认),就要把慢开始门限ssthresh设置为出现拥塞时的发送 方窗口值的一半(但不能小于2)。然后把拥塞窗口cwnd重新设置为1,执行慢开始算法。这样做的目的就是要迅速减少主机发送到网络中的分组数,使得发生 拥塞的路由器有足够时间把队列中积压的分组处理完毕。
快重传
有时个别报文段会在网络中丢失,但实际上网络并未发生拥塞。如果发送方迟迟收不到确认,就会产生超时,就会误认为网络发生了拥塞。这就导致发送方错误地启动慢开始,把拥塞窗口cwnd又设置为1,因而降低了传输效率。
快重传算法可以避免这个问题。快重传算法首先要求接收方每收到一个失序的报文段后就立即发出重复确认,使发送方及早知道有报文段没有到达对方。
发送方只要一连收到三个重复确认就应当立即重传对方尚未收到的报文段,而不必继续等待重传计时器到期。由于发送方尽早重传未被确认的报文段,因此采用快重传后可以使整个网络吞吐量提高约20%。「为什么是三次:两次duplicated ACK时很可能是乱序造成的!三次duplicated ACK时很可能是丢包造成的!四次duplicated ACK更更更可能是丢包造成的,但是这样的响应策略太慢。丢包肯定会造成三次duplicated ACK!综上选择收到三个重复确认时窗口减半效果最好,这是实践经验。」
快恢复
当发送方连续收到三个重复确认,就会把门限ssthresh设置为当前窗口的一半,接着把cwnd值设置为慢开始门限ssthresh减半后的数值,然后开始执行拥塞避免算法,使拥塞窗口缓慢地线性增大。
在采用快恢复算法时,慢开始算法只是在TCP连接建立时和网络出现超时时才使用。 采用这样的拥塞控制方法使得TCP的性能有明显的改进。在这里插入图片描述

算法题
  • 求子数组最大和-一维dp

二面复盘记录

JS/前端杂项
  • 前端的学习过程
    学习路线图+课程查看+博客记录+同学交流
  • 数组和链表的区别、二者各自的优点和缺点

数组是开辟连续的内存空间进行存储,优点是可以随机存取,缺点是插入或者删除元素的开销较大
链表所使用的内存空间不一定是连续的,它通过节点来保存值,还有一个指针空间指向下一个存储值的空间,优点是插入和删除链表节点的开销不大,但是无法做到随机存取
「JS里的数组本质上是对象,所以可以存任意类型的数据,相比与对象,数组的键只能是数字」

操作系统
  • 在操作系统层面,数组和链表在使用上的区别

电脑垃圾清理大师:处理碎片垃圾
内存碎片的产生和合并,数组上如果开辟连续空间可能剩余的空间大小不够每次有办法一次性申请较大空间。如果是链表可能就可以满足每次申请小空间的需求,但是容易把连续的内存空间进行分割,容易导致申请数组的时候没有整块的大空间

算法
  • 求二叉树的最小深度
  • 给定两个代表非负数的链表,数字在链表中是反向存储的(链表头结点处的数字是个位数,第二个结点上的数字是十位数…),求这个两个数的和,结果也用链表表示。

阿里-钉钉-基础平台

阿里的一面面试官是小组ld,二面面试官是部门ld,三面就是hr面了,但是据说阿里的hr还是比较有话语权的,所以hr面也要用心准备,不可掉以轻心。总体来说钉钉的面试侧重点还是在项目上,问的问题比较开放,也会考虑个人的性格和人品。不太考察八股,但是我们可以在回答开放题的过程中有意识地加入一些背过的八股内容来充实我们的答案。注意前端考察的算法有可能也会考虑的JS的语法特性,或者实现某些CSS效果。

一面复盘记录

JS/前端杂项
  • 什么时候开始学前端,为什么学前端
  • 项目里面有什么难点、值得show的地方
  • 有没有做过canvas底层的代码编写
  • 有没做过没用框架的项目,说说和用vue有什么区别
  • 了解过虚拟DOM吗

因为原生的DOM信息量太大了,一个简单的DIV里面就包含了大量的数据,所以渲染和操作起来对于性能的开销较大。用虚拟DOM就是用VNode对其进行抽象,一方面配合diff算法检测出最小的需要改变的部分节点,实现局部刷新,优化性能。另一方面抽象了DOM可以实现跨平台,除了PC端还有移动端这些其他设备。

  • 学习/做项目的过程中有没遇到什么困难
  • 证明你为做前端所做的事/前端上做了什么努力
  • 表达一下自己的优点和缺点/形容一下自己
  • 有没做过什么学生工作
算法
  • 数据结构调整:平级/线性数据改成树状数据「本题为重点题,被问过两次了!!!!!!!!!」
    线性数据:
    在这里插入图片描述
    树状数据:
    在这里插入图片描述
  • 数据的千分位表示
    在这里插入图片描述
    这里不放代码了哈,大家自己手打一遍印象更深嘞「绝对不是我想偷懒(手动狗头)」
    在这里插入图片描述

二面复盘记录

JS/前端杂项
  • 如何很好地还原用户的要求 / 设计页面
  • 项目是如何做优化的
  • http2和http1.1的区别

http1.1/1.0:长连接和短连接
HTTP1.0默认短连接,「一http请求一TCP」浏览器和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。
HTTP1.1默认为长连接,复用TCP连接「多http请求一TCP」。多个HTTP请求可以复用同一个TCP连接,这就节省了TCP连接建立和断开的消耗。
要使用长连接,客户端和服务器的HTTP首部的Connection都要设置为keep-alive,才能支持长连接。不再发送时客户端带上Connection: close首部发送给服务器,关闭连接。「Connection: keep-alive / close」

http2.0/1.1的显著不同点
1、二进制格式传输数据:
HTTP1.1 文本格式;HTTP2.0二进制格式,解析高效。
2、多路复用
HTTP/1.0 一次请求-响应,建立一个连接,用完关闭;每一个请求都要建立一个连接;
HTTP/1.1 Pipeling解决方式为,若干个请求排队串行化单线程处理,后面的请求等待前面请求的返回才能获得执行机会,一旦有某请求超时等,后续请求只能被阻塞,毫无办法,也就是人们常说的线头阻塞;
HTTP/2多个请求可同时在一个连接上并行执行,一个request对应一个id。某个请求任务耗时严重,不会影响到其它连接的正常执行;在这里插入图片描述
3、头部压缩 ,HTTP1.1的header带有大量信息,而且每次都要重复发送;HTTP2.0 把header从数据中分离,并封装成头帧和数据帧,使用特定算法压缩头帧,有效减少头信息大小。并且在C/S端都进行了键值对缓存,不需要发送和上次相同的数据。C只需发送和上一次不同的差异头数据给B,减少了数据冗余。
4、服务端主动推送 :HTTP2.0允许服务器向客户端推送资源,无需客户端发送请求到服务器获取

  • 从url到页面渲染的过程

输入url,先处理DNS,本地缓存、hosts、查询DNS服务器、根-顶级-权威DNS服务器,然后通过tcp三次握手建立连接,开始传输http请求和响应,浏览器获得到服务器传输的页面后开始解析,解析HTML、CSS获得DOM树和Style树,并将它们合并成render树,对render树进行布局,然后渲染render树,最后浏览器把解析好的结果发送到GPU进行渲染显示到显示器上。

  • 如果把css文件放在文档底部对渲染会有影响吗

变题:style标签写在body后与body前有什么区别「前好后不好」
1、写在body标签前利于浏览器逐步渲染「一般是先加载样式再加载结构」:
resources downloading->CSSOM+DOM->RenderTree(composite)->Layout->paint
2、写在body标签后:
由于浏览器以逐行方式对html文档进行解析;
当解析到写在尾部的样式表(外联或写在style标签)会导致浏览器停止之前的渲染,等待加载且解析样式表完成之后重新渲染;
在windows的IE下可能会出现FOUC现象(结构解析完但样式还没有解析完);

  • 如何动态加载css和js文件

原理:对于不同的加载文件类型创建不同的节点「css-link标签、JS-script标签」,然后添加各自的属性「css-href/rel/type、JS-href/type」,最后扔到head标签里面。

// 动态加载css文件
var head = document.getElementsByTagName('head')[0];
var link = document.createElement('link');
link.href = path;
link.rel = 'stylesheet'; 
link.type = 'text/css';
head.appendChild(link);
// 动态加载JS文件
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.href = path;
script.type = 'text/javascript';
head.appendChild(script);
  • ajax的流程以及如何判断任务是否正确执行

创建过程
1、创建一个小黄人xhr对象
let xhr = new XMLHttpRequest();
2、设置小黄人的各项配置
xhr.open(‘get’, ‘www.baidu.com’, true);
3、post设置请求头中资源的数据类型:
xhr.setRequsetHeader(‘Content-type’: ‘application/x-www-form-uncoded / json’) 。get方法在send(data)中的data为查询字符串,post方法为JSON.stringify()
4、发送HTTP请求:
get:xhr.send()
post: xhr.send(JSON.stringify(obj))
5、监听相应数据:
xhr.onload = function(){console.log(responseText)};
xhr.onerror = function(){};
判断任务是否正确执行:
查看xhr.status中的http状态码。

  • 做完项目的收获或者成就感
  • 管理的团队的规模
  • 你是如何沟通并解决团队和项目中的问题

hr面复盘记录

hr面内容就是这里啦。

  • 为什么不做实验室的方向「软件测试」,而是做前端开发
  • 大学和研究生成绩是多少,排名多少
  • 目前都有哪些offer/你现在还在面哪几家厂
  • 为什么选择该城市,职业发展规划,讲讲你未来 3~5 年内的个人成长规划
  • 为什么选择前端
  • 项目中遇到的困难
  • 做项目过程中总体收获
  • 学习上受到哪些挫折给你印象深刻
  • 自己的优缺点
  • 怎么与别人沟通
  • 其他人给你出的,你觉得最有用的建议
  • 抗压能力如何,如何解压,举个例子
  • 你觉得自己今后需要不断加强,改进的点
  • 选择阿里的原因

字节跳动-国际化电商/安全部门:

因为字节面了两个部门,国际化电商一面就挂了,所以就把两个部门放在一起喽。一面挂的原因:当时觉得钉钉比较稳了,然后之前因为准备实习面试花了太多时间,实验室项目和课程大作业的进度都有些滞后,所以没有花太多时间准备字节的面经「所以大家最好寒假就复习好呀!!!」,并且当时红宝书也没看多少,很多底层知识不太了解,一问就寄了。「还是太菜」

一面复盘记录「国际化电商」

JS/前端杂项
  • vue的缺陷或者优点「为什么从JQuery到Vue」
  • 简单介绍一下项目,项目中的问题、数据和性能的优化
  • canvas和SVG的区别

1、Canvas是使用javaScript程序绘制动态生成的,SVG是使用xml文档描述来绘图。从这点来看:SVG更适合用来做动态交互,而且SVG绘图更容易编辑,只需要增加或移除相应的元素就可以了。
2、SVG是基于矢量的,所以它能够很好的处理图形大小的变大。canvas是基于位图的图像,他不能改变大小,只能缩放显示
3、canvas支持的颜色比SVG多

  • echarts的图表内存缓存
  • 如何可视化渲染上百万的节点
  • 对象/类的继承「哪些方式,分别有什么优缺点」
  • 什么是闭包、作用是什么
  • 定时器一定会是设置的时间就执行吗,如何设置令其无限接近与一千毫秒
  • 讲一讲JS时间循环
  • console.log是同步函数吗
计算机网络
  • 讲一讲强缓存和协商缓存
  • http1.0的时候有etag吗
  • 讲一讲浏览器的同源策略
  • 有哪些跨域的解决方案
算法题

通过一个函数判断两个变量是否相等isEq()

一面复盘记录「安全部门」

JS/前端杂项
  • 描述一下伪元素选择器的作用「::before/::after」
  • 伪元素选择器有哪些「nth-children,nth-typeof」
  • 如何创建一个三角形「div,border,颜色」
  • border-image什么作用
  • less/scss的作用
  • JS时间循环「同步异步」
  • 宏任务与微任务「分别举一些例子」
  • Promise中的then和catch是宏任务还是微任务
  • 对对象继承有了解吗「属性独立和方法共享」
  • 伪数组有哪些「set、arguments,Array.from」
  • ES6中对于数组的操作「map/forEach/some/and/filter等」
  • 对于reduce是否有了解

二面复盘记录「安全部门」

JS/前端杂项
  • 介绍一下Promise是什么,有什么作用
  • Promise中.all和.race的作用「多个http请求」
  • 浏览器的渲染原理
  • 浏览器渲染过程中遇到JS文件和遇到CSS文件先执行哪一个「JS阻塞和CSS阻塞」
  • 重排/回流和重绘的区别
  • 说一说对于vue的理解「与JQuery的区别,有什么优点」
  • 介绍一下nexttick的作用「下一个事件循环,双向数据绑定的刷新机制」
  • 前端的路由解决了什么问题「vue的hash路由特点/优势,传统history路由」
  • vue数据双向绑定的原理「作用的时间,使用的API接口,setter/getter」

招商银行-信用卡中心:

招商银行面试在半小时内,每次面试两个面试官。

一面复盘记录「与上文重复问题较多」

JS/前端杂项
  • 大文件切片的具体实现
  • canvas使用会多少
  • 异步文件传输使用哪些API

二面复盘记录

JS/前端杂项
  • JS数据类型有哪些
  • WeakMap和Map的区别,NaN可以作为WeakMap的键吗
  • +0与-0是否相等。在===和Object.is()进行判断有什么区别
  • 1/+0的结果是什么「Infinity」
  • 介绍一下双向数据绑定「Object.definedProperty()、setter、getter」
  • 如何在高并发的情况下完成首页渲染「SSR」
计算机网络
  • 处理带宽压力「CDN、本地缓存」

百度-统一面试:

一面复盘记录

  • vue3相对于vue2的区别和优化
  • 跨域限制的原因和解决跨域问题的方法「jsonp、CORS、nginx、websocket」
  • nginx常见配置有哪些
  • 正向代理和反向代理的区别
算法题

删除链表的倒数第K个节点

二面复盘记录

  • 为什么有算法论文还要来做前端
  • 什么时候开始学前端「JQuery/vue」
  • vue相对于JQuery的一些优点/JQuery为什么会被淘汰「核心:MVVM代理了复杂的DOM操作」
  • 为什么要有虚拟DOM,和DOM的区别是什么
  • 对于语义化标签的理解,作用
  • 如何告诉浏览器这个div是一个按钮「area属性」
  • 使用jsonp有哪些缺陷「操作复杂、安全性、只有get」
  • nginx的作用「反向代理、负载均衡,在nginx上面设置过期时间等等」
  • 箭头函数和普通函数的区别「this、箭头函数只能用作函数,普通函数可以作为构造函数」
算法题

输出100以内的质数「使用已经获得的质数,上限为当前数的开根号」

三面复盘记录

  • 学过哪些编程语言
  • 父子组件之间怎么传递数据「prop/emit/parent/vuex」
  • 本科学过哪些课「计算机、软件、硬件」
  • 敏捷开发「是否有用过敏捷开发相关的项目管理的工具、燃尽图的指标」
  • 怎么保证项目的进度,线上软件出现问题怎么决定优先级,处理的沟通顺序应该是怎么样的
  • 同时作为开发者和管理者的话怎么平衡两个身份之间的问题
  • 项目开发过程中遇到的技术难题
  • 前端页面是如何部署的「怎么将域名和文件进行关联」
  • 前端的职业规划「技术专家、管理人员」
  • css布局题,左边固定,右边自适应「圣杯模型,flex」
算法题

输出100以内的质数「使用已经获得的质数,上限为当前数的开根号」

腾讯-ieg-腾竞:

因为面腾讯的时间已经比较靠后了,也有想去的公司的offer了,所以面了一次后就不想面了。「本人项目设计echarts内容,所以被问得较多」

一面复盘记录

JS/前端杂项
  • echarts第一帧和后续的拖动对于性能消耗上的区别,以及产生区别的原因
  • echarts-gl和echarts有什么区别,gl代表什么,渲染性能的瓶颈是什么
  • 你认为vuex是什么,它的作用是什么
  • 缓存策略expired和last-modified是否与服务器之间有交互
  • display属性有哪些值和visibility的区别
  • http状态码有哪些
  • 如何做到打乱一个数组内的元素
  • 常见的浏览器以及常见的内核有哪些
  • 模块化的规范有哪些
  • 如何在一个字符串1后面补十个0
  • ES6新特性有哪些
  • "=="和"Array.is()"的区别有哪些
  • Vue插件和组件的区别是什么
  • 了解过sourceMap吗「混淆代码映射」
算法题

求两个数组的交集

  • 5
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值