字节前端一面-重庆懂车帝
前提提要:前些天字节前端三面挂了,又被电商捞起来鞭尸,但比较喜欢懂车帝,就结束了电商那边的流程,开始面试懂车帝这边
3.18 下午两点面试,面了一个小时
1.自我介绍、特点特长
2.对未来的规划、想做什么
3.对前端岗位的理解、这个岗位需要做什么事情,相对于其它岗位的特点在哪里
面试官:大厂里面业务相关的直接丢给外包了
4.有没有了解前端一线技术领域所做的一些探索
5.前端应该学哪些东西,你现在掌握到哪种程度了
6.有完整的读过前端相关的书籍嘛
在看《你不知道的JavaScript》,html、css看w3c school,js看mdn,论坛再看掘金
7.前端性能优化的点
网络:
减少网络请求:缓存、本地存储、雪碧图
请求过程优化:Webpack构建工具优化、CDN加速存放静态资源
渲染:
SSR服务端渲染
减少回流重绘
尽量少修改DOM
面试官:你刚才谈的都是一些比较经典传统的性能优化,现在是移动端时代,一般会对其具体设备做优化、离线化、cdn边缘计算、nsr,pha?
你提到的现在通过一些自动化部署的方式就可以得到解决,真正需要手工干预到的就是上面提到的
8.css position属性、文档流
static:默认值、出现在正常文档流中
relative:生成相对定位的元素,相对于其正常位置进行定位。
absolute:生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。
fixed:生成固定定位的元素,相对于浏览器窗口进行定位。
sticky:粘性定位,该定位基于用户滚动的位置,在relative与fixed之间做切换。
9.实现一个元素的水平垂直居中布局
flex布局
transfrom:translat(-50%, -50%)
10.css盒子模型
IE盒模型、标准盒模型
box-sizeing属性
11.css选择器及它们的优先级
12.html 里meta标签
13.网页更好的被SEO,有哪些方法
14.let/const/var
15.原型、原型链
16.构造函数与普通函数的区别
17.super
18.js事件循环机制,为什么会有宏任务和微任务两种类型的异步任务
宿主环境不同,宏任务是浏览器发起的,微任务是js引擎发起的
19.vue解决的问题,相对于原生开发的优点
数据驱动页面
组件化开发
20.熟悉的数据结构以及它们的特点
21.算法题
题目本来是输出组合种数,后来面试官又要求输出所有的组合 最后说到代码写法上可以再优化一点function total(arr, aim) { const n = arr.length; let ans = 0; let track = [];//每次最终的结果 let op = []; //所有的路径 const dfs = (cur, sum) =>{ //递归出口 if(cur === n) { if(sum === aim) { ans++; op.push([...track]); }return; } //选择列表 sum += arr[cur]; track.push("+"); dfs(cur+1, sum); track.pop(); sum -= arr[cur]; sum -= arr[cur]; track.push("-"); dfs(cur+1, sum); track.pop() sum += arr[cur]; } dfs(0, 0); return op; } console.log(total([1,1,1,1,1], 1))
反问:
1.对于此次面试而言,前端我还需要哪些加强和扩展的
深度不够,读JavaScript高级程序设计
接触的面还是比较窄,看社区讨论热度高的一些东西
总体还说算比较不错的
2.推荐前端社区,除了我现在在看的掘金社区
掘金更偏应用层,可以关注github上stars比较多的一些库和话题
加前端讨论群,讨论的人多了才会发现它的必要性和价值
3.最近在看阮一峰es6入门,还有一些技术博客的手写promise、vuex、vrouter、webpack,这些有必要深入去看嘛
目的是去理解它的原理,如果很理解了没有必要去手写了
如果还存在又模糊的地方,这个时候去手写它就很有意义了
五点hr打电话过来约二面,字节效率真高