0.自我介绍
1.React和Vue的区别(简单说了下大体使用上的区别,社区的热度,适合用于构建大型项目什么的)
2.还能再具体说一下它们的区别吗?比如虚拟DOM之类的。(我说了v-model的数据双向流动和它们的父子组件传参都是单向数据流动,diff算法的话源码了解不深入并不知道有很大的区别,只知道都是用key来判断是否需要更新)
3.React和vue的diff算法有什么区别
4.虚拟DOM和真实DOM有什么区别(我回答性能开销上小一点,但是并没有深入,React的虚拟dom叫fiber之类的。一个没答好就会步步紧逼)
5.说说vue3的新特性吧(按需引入,defineprops还有emit,性能优化,diff算法优化,取消全局事件总线的api)
6.你用React hooks吗,说说hooks解决了哪些问题(解决了类组件this指向不明显,嵌套过深导致代码过于复杂等问题)
7.说说css吧,我现在要实现三列布局,具体怎么实现(我说了float左右还有flex布局,将三个盒子的flex都设置为1)
8.如果我现在有很多个盒子,每列要有三个,宽度也未知,怎么实现(我愚蠢地回答我会在里面加个已知宽度的父容器,然后把每个盒子的宽度设置为父容器三分之一)
9.flex有哪些属性,你再把上面的问题解释一下(我说了basis还有shrink还一个拉长的属性,但是还是不太明白题目的意思)
10.那说说如何清除浮动吧(我回答clear:both)
11.clear:both加在哪(我一开始说加在父元素,又说加在一个content为空的伪元素)
12.伪元素和伪类的区别(回答了冒号的写法还有举了一些伪元素和伪类的例子)
13.那么clear:both的伪元素是用的::before还是::after(我回答before,开始心虚,因为对于css确实没那么重视,不记得了)
14.说说display:none和visibility:hidden还有opacity:0的区别吧(回答了display会引起浏览器回流,visibility会引起重绘,opacity会涉及gpu渲染加速)
15.那上面这三个属性都是可以继承的吗(我又忘了,回答display可以继承,visibility不可以,opacity应该可以吧,没仔细观察过)
16.css如何实现一个三角形(我说让三个边的border不显示就可以了)
17.具体怎么设置那个三角形的border(又开始深入了,我说设置border-left:none这些应该就可以了)
18.js有哪些数组方法(开始吟唱)
19.深拷贝和浅拷贝说一说吧(胡乱扯了几句什么object.assign,解构赋值,开始蹲面试官要考我深拷贝手写)
20.手写深拷贝(天天默写,秒A)
21.如何深拷贝一个数组(我说用我刚刚手写的深拷贝就行,面试官笑,问还有没有别的方法,我说reduce这些应该都可以吧)
22.防抖与节流的应用场景(开始吟唱,然后蹲要我手写防抖或者节流)
23.手写防抖(果然,天天默写,秒A)
24.说说浏览器输入url到显示页面发生了什么(继续吟唱,什么dns递归查询啊,三次握手四次挥手啊,http和https啊,浏览器进程的五个线程啊)
25.那你说说建立tcp连接后发送http请求带了那些东西(我没听太懂,开始吟唱get和post的区别,post先发送一个请求头,然后接到服务器返回的100状态码后继续发送body部分,面试官认为我没get到点)
26.get或者post请求的那些请求头你了解过吗(我说了跨域的,host主机地址的还有一些)
27.状态码了解多少(开始吟唱,大多都说了,唯独忘了304)
28.那你说说304吧(在面试官提醒后我才想起304,然后谈起了浏览器缓存)
29.刚刚你谈到了E-tag,详细说说(背诵)
30.除了E-tag还有哪些判断资源是否改变的请求头(我随口蒙了下cache-control,expire这些)
31.到最后了,在来道算法吧——**14.最长公共前缀(寄,时间不够了,今天就凉在这里吧,写了二十分钟没写出来,感觉面试官都开始不耐烦了,easy没写出来确实挺丢人的,之前还写过几遍)
32.反问(我问了公司技术栈,回答是都用,日常工作是什么,回答是electron啊react native这些挺多挺杂的)
总结:easy没写出来,remake去咯
#内推##面经##前端工程师##实习信息##秋招#