1.从什么渠道知道的前端?怎么学习前端的?
2.项目是模仿市面应用的一个小demo吗?
3.vue2和vue3的区别(提到proxy)
4.proxy怎么把一些属性转为私有属性,而不是直接暴露给外面(追问我使用过vue3没,我没用过vue3就没问了)
5.es6新特性有哪些?(提到了promise)
6.promise场景题:
如果一个页面有10个接口,其中9个接口成功,一个接口失败,怎么处理使得页面能够尽快正常加载?
7.电商中通常会有秒杀倒计时的功能,如何精确的计算倒计时?
不会,换成问setTimeout,setInterval也存在延迟,有时候一些其他任务会打断setTimeout的计时,导致并没有按setTimout规定的延迟时间进行回调,比原来时间更长,怎么保证setTimeout不被干扰或者说减少延迟?还问了我setTimeout最小延迟时间是?(4ms)
8.防抖节流,图片懒加载,路由懒加载的应用场景
9.图片懒加载场景题:
一个页面里有多个版块,用户快速滑动页面,怎么才能较快的加载出不同版块的图片,而不是需要等待页面发出请求然后再显示数据?
10.webpack的打包流程?
11.tree-shaking了解吗?借助了一个什么技术实现?(原理)
12.xss和csrf攻击怎么防御
13.通常都说js是单线程?你是怎么理解的?浏览器里有哪些线程?
14.浏览器线程场景题:
一个页面同时出现加载css样式渲染和js操作dom实现动画,甚至iframe页面内加载动画,这时候浏览器内里的线程是怎么工作的?
不会,换了个简单地问我,JS操作Dom样式改变发生在哪个线程里?(我答错了,说是在js线程里,当时以为重点是问dom样式改变,会重新渲染发生在渲染进程)
15.http2.0比http1.1有什么新增的特性?具体都是在那些请况下应用到这些新特性?
16.实现两个页面跳转,不经过服务端,仅仅是在客户端发生数据传送,怎么实现?
17.通常在交易过程中会对商品的价格进行一个总计,但是在计算机之中小数计算是不精确的,可能会造成资损,怎么解决这个问题?
总结:面试官很有耐心,我不会的地方都解答了一下,基本都是在具体场景下怎么解决问题,然后发散思路,感觉面试官技术很扎实。
最后我还是好多东西都不会,很多底层原理也不了解,不过这次面试经历还是很愉快的