一、广州简知科技
1.问frefetch和preload区别,
答:preload 和 prefetch 有个核心的区别,preload 用于预取当前页面的渲染要用到的资源,prefetch 用于将来页面渲染要用到资源,所以 preload 优先级高,资源会立即请求,而 prefetch 优先级低,资源在空闲时请求
2.cors原理
答:服务端设置允许源
3.vue的那些资源是用了preload,哪些是prefetch
答:前面说了 prefetch 用于将来的页面渲染需要用到的资源,preload 用于当前页面渲染需要用到的资源,那么很显然,异步路由页相关资源是 prefetch 的,其它是 preload 的
4.插件开发了怎么给团队的人用,除了git有没有更好的工具更智能的,还有插件怎么发布到npm上
5.xss和xsrf的原理
答:xss 是来自用户侧的攻击,xsrf 是来自网络中间人的攻击。对于 xss,防御的思想在于永不信任用户输入的内容。xsrf 则是要抗请求重放
6.xss输入检测怎么转换的,标签都转换成什么 (小于号) ‘<’;(html实体) (大于号) ‘<’;(htlm实体)
7.vue起服务server有几种服务
8.ssr从开发到发布是怎么实现的
9.动画
二、广东视源
面试官很有耐心
1.说一下对webpack的了解,webpack从入口构建的依赖关系图
2.vue2响应式原理和vue3原理
3.讲一下https 7次握手
4.BFC
5.vue-router原理
6.继承
7.flex /* 使用伪元素辅助左对齐 */ .container::after { content: ""; flex: auto; /* 或者flex: 1 */ } 8.http和https区别,了解https加密过程吗
9.讲一下原型原型链,问了一个原型链查找过程
10.浏览器缓存机制
11.实现2列布局
12.webpack的插件是怎么运行的
13.node的eventloop和浏览器的eventloop
14.垃圾回收机制,引用计数为什么会混乱
15.前端有10000个数据要展示出来怎么优化,并且保证他的索引不混乱
先将要渲染的数据传入虚拟列表组件,再指定可视窗口的高度,并人为定义一个滚动条的高度,在滚动条滚动的过程中,实时获取 scrollTop的高度,根据this.start = Math.floor(scrollTop / this.size),size为每个元素的高度,获取当前应该从第几个开始渲染, 根据this.end = this.start + this.remain;remain为窗口展示几个元素获取 当前应该从第几个停止渲染,再根据绝对定位this.start * this.size获取offset下偏移量。并根据this.items.slice(start, end)获取要渲染的数据。相当于是在一个窗口内,一边滚动,根据滚动算出滚动的距离,根据此距离算出从第几个元素渲染,第几个结束,再获取偏移量,然后绝对定位。
三、涂鸦智能
一面:
1.说一下回流和重绘
2.说一下用户从输入地址到页面完全显示发生了什么
3.说一下evetloop
4.vue的路由原理
5.前端性能优化
二面:
1.先聊聊项目,你觉得哪个项目你写的最好,讲一下
2.你在你们项目组担任什么角色
3.说一下mvvm
4.xss有哪几种类型
5.data为啥是一个对象
5.虚拟dom是啥
6.diff对数组做了啥优化吗
7.常规diff算法复杂度是多少,vue diff复杂度是多少
8.vue是如何将模板编译的
三面:
hr面
四广州果肉网校
1.大文件上传组件
引发出的问题
a.大文件上传,切片上传切成的buff存在哪里,浏览器要是刷新了会咋样
b.如果单个切片上传过程中断网了,也就是只上传了一部分
c.怎么保证文件上传到服务器的唯一性