字节提前批前端面经(全流程)
一面
8.3 16点
html
1. 介绍一下meta标签:
charset="utf-8" 设置字符集
name=viewport 视口,用作适配
http-equiv:可以设置缓存,设置哪些动态资源允许被加载,dns预解析,refresh跳转等
以当前IE浏览器所支持的最高版本模式来渲染页面2.
alt是干啥的
CSS
1. 盒子模型
- 介绍
- box-sizing
- 给代码,说出paddinng值
2. 几种定位方式
- static,relative,absolute,fixed,sticky
- 给出一段css,说出盒子根据什么来定位的
3. 写一个上下高度固定 中间高度自适应的样式
- flex:1 以及各个缩写属性代表啥
JS
1. let,var,const
- var的变量提升
- let的暂时性死区
- 函数表达式function func()与函数声明
- const必须赋初值
2. 箭头函数的特性
3. 关于继承的代码题,说出当前实例的属性值
4. 考察宏任务与微任务的题,说出输出顺序
5. 类型转换的题
- ==, ===
- parseInt
- 如何实现一个isNaN()
算法
一个数组,求其中和最大的连续子数组,输出和
二面
8.4 16点
项目相关
1. vw做移动端适配的原理:viewport
2. 屏幕像素、物理像素
- dpr:设备像素比=物理像素/设备独立像素
项目无关
1. 回流和重绘:为什么回流开销大(渲染树)
2. 缓存机制:强缓存与协商缓存
- etag是怎么判断资源是否更改的:hash算法或者last-modified与content length表示为16进制组合(nginx)
- etag解决了last-modified什么问题:资源周期性更改,但内容不改变;if-modified-since只能查询到s级别的更改;服务器不能精确得到文件最后的修改时间
- 哈希函数 md5 sha1
- md5: 对于原始消息做有损的压缩计算,生成消息摘要;单向不可逆;可用于密码保存
3. get和post的区别
get携带的数据量有限制:是浏览器限制的还是协议限制的
在IE中限制2K+53
post可以将参数放在url上吗?为什么?
可以,body类请求兼容url类请求
post请求参数的大小限制是服务器的处理能力
4. 跨域
介绍同源策略:安全
nginx怎么实现跨域:源的映射
www.a.baidu.com 与 www.b.baidu.com 会发生跨域吗
子域名不同,可通过设置cookie domin解决
继续项目
1. 说说登录注册功能怎么做的
密码是怎么存的,应该要用加密(但我没有
bcrypt:每一次hash值不同,计算缓慢
2. cookie与session
- cookie的跨域:domain
- session的生命周期:过期 、session.invalidate、服务器重新启动
3. vue-router
- 实现原理
- hash(#)、history(会向服务器发请求吗)
算法
一个数组nums,求和>=s的最小连续子数组的长度(leetcode 209 双指针)
三面
8.5 17点
1. 学习前端时间?怎么学习前端的?
2. 一些聊天
3. 2道js异步输出结果(拉跨
4. TCP和HTTP的区别和联系(TCP是传输层的啊!当时脑子宕机,随口胡了个连接层,拉跨
5. 从输入URL到浏览器页面显示,有哪一步用了UDP
6. 状态码401 304(二面也问了
7. etag与last modified的优先级
8. post传输的格式(json...其他没答出来,拉跨
9. cookie的httponly与samesite字段
10. 实习工作内容?收获最大的?最大的技术难题(拉跨,真没遇到什么技术难题
11. 项目
用到了viewport移动端适配,扣得很细,费了好大劲才讲明白
还有其他移动端适配方法吗?回答rem(继续扣,不是很懂原理,拉跨
12. 算法题
解析unix路径(题目挺简单的,就是脑子又宕机了,”."".."的含义没搞清除,面试管表示震惊,还得他给我解释,shame...
13. 接下来一年的学习计划
14. 有没有其他offer
15. css怎么做三角形(不知道为啥又冒出一个基础题
16. 反问(问了写学习方法和面试评价
总结
字节效率真高,1号投简历,2号约一面,接着连着每天一面,6号中午发意向书(不知道为啥没有hr面)。不管最后会不会入职,这点上增加了许多好感度。
一面重在考查基础,知识广度;二面考察对知识的掌握程度,一些对项目的思考;三面综合考察,给我的感觉是前两面有哪些不足的,再揪出来问问,leader给人压力挺大的,就是你必须把一件问题解释清楚,不允许蒙混过关。
这几天的面试也暴露了自己在学习上的问题,面试官也指出了,某些知识知道、了解,但并不知道原理,如何使用,例如JS的异步机制我是有了解的,但题目还是会回答错,变了个形式就不懂;还有rem适配等。相对于知识面,面试官更加在意的是你对知识点的掌握深度(至少这次遇到的面试官是这样
还有一点就是面经真的不具有普适性,不同公司不同部门不同面试官都有自己的想法,面经只能用来参考和查缺补漏,重点还是自己平时知识与技术的沉淀(说实话,有时候刷面经真的让自己疯狂焦虑,希望给看到这篇面经的小伙伴带来点帮助和建议,而不是焦虑
自己还是有很多不足,滚去磕基础了
#字节跳动##面经##校招##前端工程师#