10.29 4399 25秋招前端一面
10.29
看到了4399面经提到了redux,故搜索了一下。
https://cn.redux.js.org/
感觉它的作用和Vuex差不多,但是应该更强大一些。
面完了4399,感觉有点像kpi。
感觉还是虾皮信息的面试官更有水平。不过仔细思考一下,4399面试官只是说话比较委婉,其实还是有强大实力的。
不过在面试中,我还是发现了自己的一些不足,现在来复盘一下(4399一面):
先是自我介绍
然后问了一些项目和我个人学习前端的路径。在学习方面,我一般回答看MDN文档和bilibili。现在我发现教材也是一个很好的选择,感觉它是更成体系的。
项目没怎么挖,直接就开始问八股了。问的八股和网上的面经没差多远,不过面试官发现我答得不对或者有点偏,会稍微提示一下我。
for...in...和for...of...的区别? 我大概答了一些,不过漏掉了一点:for...in...遍历返回属性名,而for...of...遍历返回元素值
深挖了for...of...遍历对象,说怎样才能用for...of...遍历对象?我一开始回答用keys()或entries()来遍历对象,面试官说这不是直接遍历它。然后我悟到这应该是考察JavaScript的可迭代对象,也就是我也可以把一个对象按照迭代器协议要求,把一个对象改造成可迭代对象,这样就可以迭代了。
for...in...遍历Map会怎样?Map的key可以是任何类型,那for...in...是不是返回任何类型的key? 我当时乱猜确实可以返回,后面试了一下,发现for...in...并不能遍历Map的keys(完蛋)。看来Map和Array的区别我没有搞的太清楚。
还有一个关于Node的,让我十分难受,不过Node确实是我的盲点,后面要把这块补上了。
面试官:有没有了解Node? 我:不是很了解,没用过node开发。
面试官:你能不能讲一下 Node的事件循环和浏览器的事件循环的区别?
我:....... 我不是很了解,那我猜一下吧。node更多应用场景更多在服务端,node可以直接用cluster开多线程,所以它的事件循环应该会有所不同.......(好吧,我编到这里实在编不下去了)
commonJS和ESModule有什么不同? 我答了同步异步,还有导入采用引用还是复制和兼容性的问题。
这部分深挖了,面试官应该觉得我答得好才继续挖了。
commonJS能不能浏览器环境使用?ESModule呢? commonJS不可以,ESModule可以。
打包工具是如何让commonJS模块化能在浏览器运行的?我一开始脑子很糊涂,说什么插入script标签.......面试官反问这样各个模块又如何互通呢?我才醒悟过来,webpack是把各个JS文件转换为函数(表达式)的形式,然后通过函数变量传递实现模块化的。
webpack和vite有什么不同? 我说我vite用得不是很多,但是有过了解。然后说了vite的两个优点:开箱急用,更快。
vite为什么比webpack更快? 开发时不用打包,用ESModule。打包算法优化,且用go语言编写的更快的构建器。
你项目用什么发请求? 我答axios。 如何取消一个请求? 我确实没有了解过,只好答axios应该有相关的API。
最后是反问,问了技术栈。面试官说4399有很多东西,不同部门有不同的技术栈。
通过这次面试,我发现我掌握的很多前端知识并不牢固,经不起拷打。此外,Node是我的致命盲点,现代前端开发脚手架离不开node,就算不用node进行服务端开发,也得学一下node。
看到了4399面经提到了redux,故搜索了一下。
https://cn.redux.js.org/
感觉它的作用和Vuex差不多,但是应该更强大一些。
面完了4399,感觉有点像kpi。
感觉还是虾皮信息的面试官更有水平。不过仔细思考一下,4399面试官只是说话比较委婉,其实还是有强大实力的。
不过在面试中,我还是发现了自己的一些不足,现在来复盘一下(4399一面):
先是自我介绍
然后问了一些项目和我个人学习前端的路径。在学习方面,我一般回答看MDN文档和bilibili。现在我发现教材也是一个很好的选择,感觉它是更成体系的。
项目没怎么挖,直接就开始问八股了。问的八股和网上的面经没差多远,不过面试官发现我答得不对或者有点偏,会稍微提示一下我。
for...in...和for...of...的区别? 我大概答了一些,不过漏掉了一点:for...in...遍历返回属性名,而for...of...遍历返回元素值
深挖了for...of...遍历对象,说怎样才能用for...of...遍历对象?我一开始回答用keys()或entries()来遍历对象,面试官说这不是直接遍历它。然后我悟到这应该是考察JavaScript的可迭代对象,也就是我也可以把一个对象按照迭代器协议要求,把一个对象改造成可迭代对象,这样就可以迭代了。
for...in...遍历Map会怎样?Map的key可以是任何类型,那for...in...是不是返回任何类型的key? 我当时乱猜确实可以返回,后面试了一下,发现for...in...并不能遍历Map的keys(完蛋)。看来Map和Array的区别我没有搞的太清楚。
还有一个关于Node的,让我十分难受,不过Node确实是我的盲点,后面要把这块补上了。
面试官:有没有了解Node? 我:不是很了解,没用过node开发。
面试官:你能不能讲一下 Node的事件循环和浏览器的事件循环的区别?
我:....... 我不是很了解,那我猜一下吧。node更多应用场景更多在服务端,node可以直接用cluster开多线程,所以它的事件循环应该会有所不同.......(好吧,我编到这里实在编不下去了)
commonJS和ESModule有什么不同? 我答了同步异步,还有导入采用引用还是复制和兼容性的问题。
这部分深挖了,面试官应该觉得我答得好才继续挖了。
commonJS能不能浏览器环境使用?ESModule呢? commonJS不可以,ESModule可以。
打包工具是如何让commonJS模块化能在浏览器运行的?我一开始脑子很糊涂,说什么插入script标签.......面试官反问这样各个模块又如何互通呢?我才醒悟过来,webpack是把各个JS文件转换为函数(表达式)的形式,然后通过函数变量传递实现模块化的。
webpack和vite有什么不同? 我说我vite用得不是很多,但是有过了解。然后说了vite的两个优点:开箱急用,更快。
vite为什么比webpack更快? 开发时不用打包,用ESModule。打包算法优化,且用go语言编写的更快的构建器。
你项目用什么发请求? 我答axios。 如何取消一个请求? 我确实没有了解过,只好答axios应该有相关的API。
最后是反问,问了技术栈。面试官说4399有很多东西,不同部门有不同的技术栈。
通过这次面试,我发现我掌握的很多前端知识并不牢固,经不起拷打。此外,Node是我的致命盲点,现代前端开发脚手架离不开node,就算不用node进行服务端开发,也得学一下node。
全部评论
相关推荐
点赞 评论 收藏
分享
查看10道真题和解析
点赞 评论 收藏
分享