2021字节跳动前端实习面经

本文详细记录了2021年字节跳动前端实习的面试过程,涵盖了一面、二面、三面及HR面的重点问题。面试涉及CSS、浏览器、JavaScript、HTTP协议、数据结构、算法等多个方面,还包含Vue.js编程题和实际项目经验讨论。面试官关注点包括技术理解、问题解决能力和实际操作经验。

字节跳动面经

一面面试时间:2021-1-7 14:30 - 15:50
二面面试时间:2021-1-7 16:00 - 16:40
三面面试时间:2021-1-18 18:00 - 19:00
HR 面时间:2021-1-20 17:30

一面

自我介绍
CSS部分
  1. 第一个问题:display 有哪几种用法
  2. display: none; 的作用是什么,有什么效果。与 visibility: visible; 的区别是什么
  3. flex 的用过没有,写一个左栏定宽,中、右两栏等宽的布局
  4. 上述代码中 flex: 1; 的原理是什么? 你用过 flex-shrink 吗?
  5. 知道 CSS 虚拟 DOM (VDOM)吗?VDOM 的作用是什么?为什么要减少重绘和重排呢?或者说 VDOM 在浏览器中以什么样的形式存在(表现形式)?
浏览器相关的问题
  1. 常用的请求方法有哪些?GET/POST 的区别是什么?
  2. http 是什么层的协议? 传输层通过什么协议建立连接的? TCP/IP 是怎样完成通讯的?TCP 三次握手的目的是什么?“客户端和服务端都要询问对方是否处于可通讯状态并接受对方的应答”
  3. 我看你用过 WebSocket ,你能说说 WebSocket 是怎样建立连接的吗?客户端如何确认连接上了服务端没有?
  4. 常见的 Header 有哪些 key/value
  5. 上个问题回答到了 Acess-Control-Allow-Origin ,于是问 Acess-Control-Allow-Origin 的作用是什么? “允许跨域” 为什么要允许跨域?
  6. 在发送请求之后,服务端如何确认客户端是否发送完了数据?也就是说怎么知道数据还在发送还是已经发送完成?
  7. 浏览器的事件循环 event loop 是怎么样的,然后给我出了一道题,让我写出打印的先后结果,我写完题之后解释了一下我对于事件循环的理解
	console.log('start')
	setTimeout(() => {
   
   
		new Promise((resolve, reject) => {
   
   
			console.log('promise')
		}).then(() => {
   
   
			console.log
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值