欢迎光临散文网 会员登陆 & 注册

记一次字节跳动前端面试,四轮技术面通过,已拿offer

2022-12-29 20:45 作者:Dragon龙之介  | 我要投稿

笔者是在去年秋招面试的头条教育线,顺利拿到了offer,把还记得的东西写下来,供大家参考一下。

【PDF文末拿】

一面:

笔试题
1.如果后端传给前端一个很大的数,前端会怎么样,该怎么处理?
2.new的过程
3.浏览器的缓存机制(强缓存和协商缓存)
4.用css3写一个环形进度条
5.一道关于promise的任务控制编程题
6.说说BFC是什么,能解决什么问题
面试流程
自我介绍然后说一个印象深刻的项目。。。
1.浏览器是怎么加载一个HTML的(解析dom,css,js过程。。。)
2.vue-router实现的原理
3.回流重绘,为什么用transform写动画不用position top left
4.if...else...多层嵌套怎么解决
5.编程题:n维数组转换成1维数组,比如:[1,[2,3],[[4],[5,6]]]变成[1,2,3,4,5,6]
二面:
前端负责人面,自我介绍然后聊项目经验(一定要讲一些出彩的项目,什么难点,如何突破),聊了些工作经历(为什么想换工作,以前的工作有什么收获,自身的缺点)。。。
技术题问的不多
1.写一个EventEmitter
三面:
主管面,介绍工作经历,聊项目亮点balabala
1.编程题,在一个无序数组中找到第二大的数
2.项目设计题,写一个***大战(写出类和属性方法,不需要实现)
3.***大战的各个动画是怎么动起来的(游戏引擎怎么运作)
4.当浏览器地址栏输入一个url到页面展现,这个过程?
5.https过程
6.http和tcp的关系
四面:
北京交叉面,主要是聊项目(有亮点的项目,涉及架构的项目等),工作中做了什么,未来职业规划是什么,面试官最后还给了一定的建议。
刷过的题目
下面是我花了将近一个月的时间整理的一份面试题库。这些面试题,包括我本人自己去面试遇到的,还有在面试之前刷过的题目,我都统一的整理了一下,希望对大家有用。
HTML

  • 浏览器页面有哪三层构成,分别是什么,作用是什么?

  • HTML5的优点与缺点?

  • Doctype作用? 严格模式与混杂模式如何区分?它们有何意义?

  • HTML5有哪些新特性、移除了哪些元素?

  • 你做的网页在哪些浏览器测试过,这些浏览器的内核分别是什么?

  • 每个HTML文件里开头都有个很重要的东西,Doctype,知道这是干什么的吗?

  • 说说你对HTML5认识?(是什么,为什么)

  • 对WEB标准以及W3C的理解与认识?

  • ......


CSS

  • 解释一下CSS的盒子模型?

  • 请你说说CSS选择器的类型有哪些,并举几个例子说明其用法?

  • 请你说说CSS有什么特殊性?(优先级、计算特殊值)

  • 常见浏览器兼容性问题与解决方案?

  • 列出display的值并说明他们的作用?

  • 如何居中div, 如何居中一个浮动元素?

  • 请列举几种清除浮动的方法(至少两种)?

  • block,inline和inlinke-block细节对比?

  • 什么叫优雅降级和渐进增强?

  • 说说浮动元素会引起的问题和你的解决办法

  • 你有哪些性能优化的方法?

  • ......




JavaScript

  • js的各种位置,比如clientHeight,scrollHeight,offsetHeight ,以及scrollTop, offsetTop,clientTop的区别?

  • js拖拽功能的实现

  • 异步加载js的方法

  • js的防抖与节流

  • 说一下闭包

  • 说说你对作用域链的理解

  • JavaScript原型,原型链 ? 有什么特点?

  • 请解释什么是事件委托/事件代理

  • Javascript如何实现继承?

  • 函数执行改变this

  • babel编译原理

  • 函数柯里化

  • 说一下类的创建和继承

  • 说说前端中的事件流

  • 如何让事件先冒泡后捕获

  • 说一下图片的懒加载和预加载

  • js的new操作符做了哪些事情

  • 改变函数内部this指针的指向函数(bind,apply,call的区别)

  • Ajax解决浏览器缓存问题

  • ......


图片


由于篇幅限制,展示了部分内容截图,需要完整文档资料的,文末拿!

Vue

  • Vue中 key 值的作用

  • Vue 组件中 data 为什么必须是函数?

  • vuex的State特性是?

  • 介绍一下Vue的响应式系统

  • computed与watch的区别

  • 介绍一下Vue的生命周期

  • 为什么组件的data必须是一个函数

  • 组件之间是怎么通信的

  • Vue.cli中怎样使用自定义的组件?有遇到过哪些问题吗?

  • Vue如何实现按需加载配合webpack设置

  • 简单描述每个周期具体适合哪些场景

  • scss是什么?在Vue.cli中的安装使用步骤是?有哪几大特性?

  • 聊聊你对Vue.js的template编译的理解?

  • Vue 路由跳转的几种方式

  • Vue如何实现按需加载配合webpack设置?

  • Vue的路由实现:hash模式和history模式

  • Vue与Angular以及React的区别?

  • Vue路由的钩子函数

  • 什么是Vue的计算属性?

  • ......




React

  • 介绍一下react

  • React单项数据流

  • react生命周期函数和react组件的生命周期

  • react和Vue的原理,区别,亮点,作用

  • reactJs的组件交流

  • 有了解过react的虚拟DOM吗,虚拟DOM是怎么对比的呢

  • 项目里用到了react,为什么要选择react,react有哪些好处

  • 怎么获取真正的dom

  • 选择react的原因

  • react的生命周期函数

  • setState之后的流程

  • react高阶组件知道吗?

  • React的jsx,函数式编程

  • react的组件是通过什么去判断是否刷新的

  • 如何配置React-Router

  • 路由的动态加载模块

  • Redux中间件是什么东西,接受几个参数

  • redux请求中间件如何处理并发


图片



浏览器

  • 跨标签页通讯

  • 浏览器架构

  • 浏览器下事件循环(Event Loop)

  • 从输入 url 到展示的过程

  • 重绘与回流

  • 存储

  • Web Worker

  • V8垃圾回收机制

  • 内存泄露

  • reflow(回流)和repaint(重绘)优化

  • 如何减少重绘和回流?

  • 一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么?

  • localStorage 与 sessionStorage 与cookie的区别总结

  • ......


图片



服务端与网络

  • HTTPS和HTTP的区别

  • HTTP版本

  • 从输入URL到页面呈现发生了什么?

  • HTTP缓存

  • 缓存位置

  • 强缓存

  • 协商缓存

  • 缓存的资源在那里

  • 用户行为对浏览器缓存的影响

  • 缓存的优点

  • 不同刷新的请求执行过程

  • ......




算法与数据结构

  • 二叉树层序遍历

  • B树的特性,B树和B+树的区别

  • 尾递归

  • 如何写一个大数阶乘?递归的方法会出现什么问题?

  • 把多维数组变成一维数组的方法

  • 说一下冒泡快排的原理

  • Heap排序方法的原理?复杂度?

  • 几种常见的排序算法,手写

  • 数组的去重,尽可能写出多个方法

  • 如果有一个大的数组,都是整型,怎么找出最大的前10个数


图片


由于篇幅限制,展示了部分内容截图,需要完整文档资料的,看下图!



记一次字节跳动前端面试,四轮技术面通过,已拿offer的评论 (共 条)

分享到微博请遵守国家法律