补春招面经,前端
面了很多公司,有不少忘了,回忆了好久,凭记忆写吧。
拼多多(上海)
一面:
自我介绍
js类型
判断数组的方法
this指向相关,箭头函数的this
http状态码
输入url到渲染页面的过程(尽可能详细)
问了一些webpack的插件,HMR原理
列举dom的一些api
数组的api,哪些改变原数组,哪些不改变
load和domcontentload
盒模型
CSS动画相关
React生命周期
HOC
ES6和commonjs模块化区别
性能优化
编程题:
1. 实现防抖
2. promise相关:一秒内如果resolve就输出结果,否则自动reject
二面:
webpack loader作用,构建过程,输出什么
深拷贝
同源策略,跨域方案(实现,原理)
js操作cookie相关
cookie和session区别
JWT讲一下
transfrom, translate,transition
虚拟dom
redux相关
前端路由实现原理
typescript相关:实现比如add(1, 1),输出2 add('1', '1') 输出'11', add(1, '1')报错
懒加载的实现
还有一些延申问的忘了
最后编程题:
去除null, 比如[1, null ,1] 变成[1,1], {a: 1,b: null, c:2} 变成{a: 1, c:2}, {a: null, b:1, c: [1,null,1], d:[1, {a:null, b:1}, 2]}变成{b:1, c:[1,1], d:[1, {b:1}, 2]}
百度(北京):
一面:
BFC相关,作用,实现,计算高度
盒模型
meta标签相关
this指向
知道的判断类型的方法
weakMap weakSet
输入url到页面渲染过程(尽可能详细)
不可变数据实现
http状态码
SSR
性能优化
移动端适配
深拷贝实现
diff算法
大数据渲染优化
事件流(应用场景)
还有一些忘了,快问快答那种,面了一个小时左右
二面:
知道的排序算法,时间复杂度,快排实现
JS数据类型
let const var
前端路由实现
webpack相关,loader, plugin区别, 优化等
闭包(应用场景,会造成什么问题)
原型链
继承方案(优缺点)
redux-thunk实现
前端路由的底层实现
安全:XSS
跨域方案:CORS简单请求,复杂请求
二分查找一个含有n个数的数组要多少次
只要1G的内存,要对一个50个G大的文件按某个属性排序,实现方案
还有的忘了
三面:
基本聊人生
问一些场景的方案
字节跳动(成都):
一面:
一面基本问的都是基础,手撕代码也不难。看牛客其他面经感觉好难
this指向,箭头函数的this确定
bind,apply,call 实现call
es6相关: let const Map Set weakMap weakSet
promise then第二个参数和catch区别
事件流
类型判断方法
http缓存
状态码
防抖节流,写一下防抖
js继承方案各个优缺点,写一个es5继承
反转数字
盒模型
实现垂直居中的方案(尽可能多)
两栏布局
五层模型
defer async
实现reverse方法
setState更新机制
同源策略,跨域
rem em vw
还有一些看代码说输出:考察event loop的
还有的就忘了
二面:
redux相关:enhancer ,redux-thunk实现,redux中间件机制
React-router实现
promise.all实现
axios做拦截
输入url到页面渲染过程
前端安全:XSS CSRF 中间人攻击
断点续传
还有的忘了
最后是一个很简单的代码手撕:实现一个数组方法,输出数组中出现频率大于n的数字
三面:
子网掩码作用
进程和线程
进程通信,举例
webpack loader plugin作用
ES6和commonjs模块化区别
虚拟dom,细问
setState更新机制,追问
ts 什么时候会用type 什么时候用interface。
还有一些问题忘了
编程:
一个包含很多url的数组,每次进行固定数量的请求,返回结果后,再进行下一批。
三树之和