桃翁同事裁员之际勇拿各大厂offer,最后上岸字节跳动
共 3253字,需浏览 7分钟
·
2020-05-30 23:22
点击上方关注我吧
本篇是面试题汇总篇,大厂的面试基本都是三面+hr面,所以,我会根据每个阶段的面试,来对面试题进行分类,从中总结面试经验。欢迎收藏和关注~
莫问
一面,以考察基础为主,同时也会有笔试题的考察。面试官,一般都比较好沟通,对于基础问题都会有所探讨。因为这一面的面试官,大概率是自己以后的师兄/师姐。主要会从以下几个维度考察:
JS基础
CSS基础
网络层
常用技术栈
JS基础
for循环和forEach循环,哪种性能会好一些
let,const和var的区别【给一道题,分析报出什么错误】
JS的基础数据类型有哪些
什么是Symbol,它的使用场景是什么
数组原型上面的方法有哪些,哪些是可以改变数组的,哪些是不可以的
如何转换一个类数组对象,大致原理是怎么样的
Map 和 Weakmap的区别
了解JS的作用域么,函数作用域是在什么时候形成的
什么是闭包,它有什么作用,它的原理
通过例子的形式,说一下JS的原型链
如何实现一个new
说一下JS的继承方式
什么是箭头函数,它和普通函数的区别
this的指向【通过题目考察,表述结果,解释理由】
如何迭代一个对象,for..in这种方式,如何取出对象自己的属性
Object.assign它是一个浅拷贝还是深拷贝
如何实现一个深拷贝
什么是Promise,如何实现它,Promise.then,Promise.race如何实现
什么是防抖,什么是节流,如何实现防抖
描述一下Event Loop,这个循环会一直下去么,宏任务和微任务的区别【通过笔试题的方式,表述结果,解释理由】
如果在Event Loop中,不断push微任务是否一直会执行
浏览器的事件机制有哪几个阶段?addEventListener的第三个参数起到什么作用
如何实现一个请求超时
CSS基础
什么是盒模型,如何进行不同盒模型的切换
样式的优先级排序,如何去获取一个样式的相邻元素
position的属性值有哪些,它们的区别是什么
列举一下移动端适配方案
flex的布局了解么,什么是主轴,如何控制主轴和副轴
Flex的优点和缺点,如何用flex布局两边固定,中间自适应;同时其他方式能实现么
如何实现水平垂直居中
如何清除浮动,清除浮动的原理
什么是BFC,它的作用是什么,什么行为会产生BFC
父元素浮动了,子元素形成BFC能清除浮动么
css的动画如何实现
为什么使用transform写动画,不用left写动画
回流和重绘的区别,什么行为会导致回流,什么行为会导致重绘
了解CSS3么,CSS3里面新增了哪些属性
1px的问题可以如何去解决【尽可能地多说】
less和css的区别,less的函数有了解过么
网络层
在浏览器输入一个URL的整体过程是怎么样的
描述一下浏览器页面渲染的过程
浏览器白屏是什么导致的
浏览器存储Cookie、localstorage、sessionStorage的区别
cookie如何进行设置的,JS能改变哪些值
描述一下浏览器缓存
HTTP的状态码有哪些
HTTP的请求头包含什么
解决跨域的方法有哪几种
描述一下JSONP的原理
描述一下CORS的过程
常用技术栈
vue 和 react的一些区别
Vue的生命周期有哪些
vue的异步组件了解过么
vue的双向数据绑定如何实现的,数组的响应式如何做到的,proxy的好处
Vue的指令有哪些,v-if和v-show的区别是什么
计算属性和侦听属性的区别
vue的虚拟DOM和react的有什么不一样
描述一下vue的diff算法
v-for之后的key的作用是什么
Vue的组件通信有哪些
keep-alive如何实现
如何实现一个hash路由
vueRouter的方式有哪两种,区别是什么
vueRouter的路由守卫了解么
vue3.0的新特性了解么
React的setState的机制是什么
描述一下React生命周期
描述一下redux的中间件原理
redux如何进行异步处理
redux和dva的区别
webpack的loader和Plugins有什么区别,webpack是如何去使用Plugins的
描述一下小程序的同层渲染原理
小程序的bindtap和catchtap的区别
小程序的通信是怎么样的
小程序的setData的数据如何很大,如何解决
如何实现数据打点和用户行为监控
编程题
实现一个sum方法【sum(1, 2, 3)(4),sum(1, 2)(3, 4)类似的调用】,同时console.log(sum(1, 2, 3)(4) => //输出10
给定一个先增后降的数组,找出其中的最大值
实现数组去重的方法【尽量多写】
实现一个正则表达式(匹配url链接)
如何通过CSS实现一个梯形,然后实现一个可以点击的圆形
一个人总共吹了253根蜡烛,它几岁了【一岁吹一根,两岁吹两根,依次类推】
如何实现两个有序数组的合并,要求时间复杂度是O(n)
莫问
二面,一般都会考察一些项目问题,性能优化,也会对基础的原理部分进行综合考察。二面面试官,往往是以后自己的leader,或者其他部门更加资深的技术。考察的维度比较多变,需要多对项目这个部分进行准备。
基础部分
Http状态码有哪些
HTTP1.1/HTTP2.0的区别
描述一下浏览器缓存
cookie和Session的区别
描述一下xss和csrf,如何防范
请求超时timeout的原理
描述一下进程和线程
node内存泄漏的原因
了解过vue迁移到小程序的原理
虚拟列表的实现原理
骨架图的实现方案
React hooks的优点
Dva的同步状态管理,异步状态管理,是如何实现的
描述一下vue的nextTick的原理
webpack常用插件,以及dev和product有啥差别
webpack打包原理
小程序页面之间的通信怎么处理
webview组件和原生组件的区别
性能优化
移动端的性能优化【从自己做过的角度出发】
webpack的性能优化如何做
如何进行首屏加载优化
平时如何做小程序部分的性能优化的
编程题
写出3种水平垂直居中方案
手写实现bind方法
手写promise的sleep函数实现
手写Promise.all的实现
算法题 - 寻找最长不重复子串
算法题 - 计算年龄 【输入一个字符串:yyyy-mm-dd,根据当前时间计算它的年龄】
二面面试过程中,会涉及到项目的问题,我这里不进行列举。因为每个人的项目不太一样,参考意义不大。可以多对项目中的难点和亮点进行展开叙述。
莫问
三面,一般会考察项目,个人规划,提供技术方案的能力。三面的考察,开放程度更大,每个人根据自己的情况,酌情回答。同时,也会有笔试题的考察
聊项目,项目中遇到的问题,如何解决的
回头看,项目中还有什么需要改进的地方
平时如何去做性能优化的
在公司有啥技术贡献
在原公司,自己最大的成长是什么
自己觉得在原公司的开发流程上,还有哪些可以改进的
代码的注释,数组的解构,整体的思路,如何进行函数的封装,如何使用设计模式,如何你进行代码调试
希望公司能够提供你什么
自己未来的职业规划是怎样的
平时如何进行学习的
目前在学习什么【慎重回答,这是面试的扩展点】
离职的原因是什么
编程题
算法题 - 实现一个二分查找
实现一个异步缓存请求【考察并发】
算法题 - {} [] ()三个判断是否闭合
莫问
hr面,一般比较轻松。主要围绕着你的基本信息、薪资情况、个人发展、性格、和他人相处、团队协作等方面展开。题目本身开放性程度比较大,每个人的答案也不相同。按照个人情况作答即可。
你为什么离职,对上一家公司的印象如何
你的优点是什么,缺点是什么【一般会让你通过具体案例去说明】
你在别人眼里是怎么样的一个人
你对未来的规划是怎样子的
你的期望薪资是多少
推荐阅读
拼多多和酷家乐面试总结(已拿offer)
蚂蚁、字节、滴滴面试经历总结(都已过)
为什么现在面试总是面试造火箭?