字节跳动前端实习面经总结(二)
10066
2020.12.13
2020.12.13
发布于 未知归属地

bytedance.jpg
{:align=left}

一般流程

一般先从简历入手,问简历上的项目涉及的知识点和一些开放式问题,然后问一些开放式问题,比如:

  • 前端在学校一般没有开设相关课程,你是怎么学习的
  • 前端的框架你是怎么学习的
  • 描述一下接手一个项目到项目开发完成的完整流程

接下来就会提问 js、CSS 基础知识,框架、网络等,可能会涉及到算法题目,一般不会很难,掌握高频的,基本的即可。

关于前端中的编程问题,已经汇总在

问完技术问题之后一般会再拓展问一些其他问题,比如:

  • 你加入字节跳动想要收获什么呢?
  • 为什么加入字节跳动?
  • 有没有了解过大公司是怎么开发的?
  • 你的职业规划是什么?

注:如果你是一名转行的同学,几乎 99% 的面试官都会问到一个问题:

你为什么转行学前端?

以上开放式问题一定要好好准备,面试官的每一个问题都是有目的的——考察你是否能胜任这份工作。

JavaScript

  • 如何判断一个对象是不是空对象?
  • 0.1+0.2 == 0.3 ? 原因是什么
  • Number() 的存储空间是多大,如果后台发送了一个超过最大字节的数字怎们办
  • 聊聊 Proxy
  • 几乎必考原型链问题:
JavaScript
JavaScript
var a = {x:1}
var b = a;
a = a.x = {x:1}
console.log(a);   // {x:1}
console.log(b);   // {x:{x:1}}
  • 异步问题,说出输出结果顺序
JavaScript
JavaScript
console.log(1)
new Promise((resolve)=>{
 resolve();
 console.log(2)
}).then(()=>{
 console.log(3) 
})
setTimeOut(function()=>{
 console.log(4)
},0)
console.log(5)

CSS

  • 垂直居中如何实现
  • align-center 中适配 ios8(-webkit-align-item: center
  • rem 的理解
  • .divdiv > div > div 的优先级
  • display:none, visibility:hidden, opactiy:0 的区别。
  • BFC,如何形成 BFC
  • BFC 与 IFC 的区别
  • BFC 会与 float 元素相互覆盖吗?为什么?举例说明

框架

Vue

  • vue@3.0 中的 preset 配置
  • 父组件 A 和其子组件 B/子组件 C,B / C 进行通信的方式
  • 组件中 eventbus 的实现
  • 组件如何设置并被使用
  • 如何来创建多个项目?
  • 多个组件 $message 如何实现最后触发的在最上面
  • 如何实现在图片被加载之前的占位符一个 image,宽高比 16:9

React

  • 为什么要使用 Redux,是不是所有项目都必须要使用 Redux?

运行环境

  • 讲讲回流和重绘
  • 如何解决页面卡顿(前端性能优化是一个永恒的话题,综合性很高的一个问题,尽可能回答)
  • 浏览器从输入 url 到页面渲染的整个流程(同样是一个很综合的问题,有很多细节值得深入理解)
  • ssr 和前后端分离的区别
  • 如何实现 list 的无限滚动(节流?)
  • 如何处理跨域
  • git 使用过吗?用过哪些指令?git 具体工作流是什么?(问 git 时必问的一个问题)
  • git merge、git rebase 的区别

HTTP

  • POST 一般可以发送什么类型的文件
  • http 缓存了解哪些?
  • post 和 put 的区别是什么?
  • Cookie 中的操作以及 httponly
  • 如何判断一个 IP 是不是国内 IP?
  • 说一说你了解的 express 中间件
  • 浏览器请求数据问题,请求数据到请求结束与服务器进行了几次交互
  • TCP为什么要四次挥手
  • cookie有哪些属性、大小、浏览器如何禁止别人访问 cookie
  • localStorage,sessionStorage 的区别
  • 在交互过程中如果数据传送完了,还不想断开连接怎么办,怎么维持
  • websocket 与 ajax 的区别
  • fetch API 与传统 request 的区别

手撕代码

参考文章



评论 (3)