【前端面经】收手了
百度、京东、360、美团、商汤科技、华为
作者:7+
来源:牛客网
一直在用牛客网刷题,看面经,收获颇多。
现在已经到手的offer:百度、京东、360、美团点评、商汤科技、华为
其他的有些还在流程里,准备收手写论文了。现在回馈给大家一手的面经,希望可以对大家有所帮助。
【岗位】前端研发工程师、软件研发工程师
1
# 百度(3轮技术面+1轮HR)
cookie和session, cookie和webStorage的区别,如果cookie被篡改怎么办
跨域的方法
因为引用计数产生的内存泄漏,在ES6中的解决办法是什么
js中基本类型在内存中存储方式是什么,引用类型的存储方式是什么
手写jsonp以及常见的响应码,特别问了401
渐进增强和优雅降级
封装的js插件,事件委托和性能优化
http连接性能优化,长连接,keep-alive
从输入url到看到页面发生了什么
前端缓存机制,如果去掉etags\last-modefied\cache-control这些控制缓存的字段,浏览器会怎么处理缓存
说一下前端性能优化的各种情况,然后讲清楚每一个类别的细节
给定两个整数a和b,要求在使用任何辅助空间的情况下,交换两个的值
给两个杯子,一个5升,一个6升,水随便用,最后取出3升水
给10个箱子,有一个比其他得要轻,用最少的比较次数找出这个箱子
React组件声明周期,要传送数据在哪个周期发生,应该怎么实现
设计一个产品,实现非前端人员或者运维人员可以方便使用,达到不需要专业前端开发人员就可以实现前端交互实现的功能,详细介绍产品设计的思路、技术选型、用户体验考虑、前端底层支撑实现、项目架构设计和后台架构设计。
给你一个团队,怎么去带,怎么分配任务和把控项目进度
论文算法细节、创新点。 项目中的架构和技术细节。
let暂时性死区和块级作用域
React的组件生命周期
手写给出一个工厂方法实现
手写给出一个策略模式实现
手写给出一个装饰者模式实现
实现深拷贝的方法
前端安全(XSS、CSRF以及应对措施)
类数组有哪些
for in的缺点
forEach()
ES6中map遍历的实现原理
数组去重问题
React的思想和原理,虚拟DOM树和diff算法
2
# 美团(3轮技术面+1轮HR)
死锁是什么,什么情况下会发生死锁,手写模拟一个死锁
手写堆排序
桶排序和基数排序
找二叉树最近的公共祖先
https的详细过程,使用的加密算法,是对称加密算法还是非对称加密算法。md5、SHA、AES分别是对称加密的还是非对称加密的
版本号排序(不允许借助现有的封装好的排序函数)
模块化, webpack, AMD和CMD
数据库索引的底层是怎么实现的,它的数据结构是什么
盒子模型中的margin折叠问题
两列等高布局,左右两列中间有个margin=20px,左侧定宽怎么实现,如果左侧不定宽怎么实现
二维数组中,找出最大的m个数。(每一行都是非递减序列)
作用域, 原型链,闭包。手写一个闭包,并分析作用域。什么情况下,闭包会导致内存泄漏,手写给个例子。
Symbol,写一个应用实例,并说出它的其他应用场景
BFC的定义和特性
手写实现斐波那契序列
webpack中babel的实现
jQuery源码看过没有,说一说自己有哪些了解
node.js 用过没有
ajax存不存在跨域的问题,解决跨域的问题有哪些
数组的各种方法
CSS3 中position的新取值
浮动和定位
内存换页算法知道哪些,说一下详细的算法思想和细节
手写实现 LRU 换页算法
9个球,有一个不正常,但不知道是轻了,还是重了。怎么比对,在3次内找出这个球。
a和b两个数,不借助任何辅助空间,交换值。
js封装插件的问题
事件循环知道吗?描述一下它的实现原理和应用场景。
ajax调用中,后台数据返回线程和前端UI线程是怎样通信和交互的,说一下实现原理。如果让你来设计,你会怎么设计,给出关键的数据结构和流程思路。
3
#360(2轮技术面+1轮HR)
手写封装一个jsonp
get和post请求(FF浏览器的特例)
垂直居中
HTML5、ES6新特性
动画
事件委托(e.target, e.currentTarget, e.srcElement)
冒泡和捕获
阻止冒泡的方法,阻止默认事件的方法(兼容IE)
redex缓存
封装的插件中datepicker的实现原理
性能优化中离线操作
跨域的其他方法
delegate(事件委托和异步编程)
fiddler 抓包
数组去重
psd切图
正则表达式
socket+openvpn
http包的格式和解析
4
#商汤科技(3轮技术面+1轮HR)
常用的状态响应码
手写快排
手写实现求两个集合A, B 的差集,<A-B>和<B-A>都要给出
说一下react和vue的应用场景
vue-router
CDN路由回溯定向
webpack主要解决了什么问题,有哪些优点
TCP和UDP
soket阻塞模式
防火墙output链
作用域和原型链,出了一个作用域题,说出输出
new发生了什么和this对象的指向类别
bind、apply和call
原型链题,在一个构造函数的原型上添加方法,问新构造的对象里有没有这个方法
docType是干什么的,都有哪几种取值
浏览器缓存机制,流程和细节
cookie和sessionStorage、localStorage的区别
正常情况下,如果浏览器已经登录了百度账号,再另外打开一个tab页是会自动保持登录状态的,问怎样杜绝这个事情,使得每一次打开都是重新登录,给出实现方案。
http1.0 和 http2.0 的区别
https 的详细过程,从握手到SSL协议,并说出为什么https并没有得到大规模应用
gzip压缩和雪碧图
IE盒子和W3C盒子,两种盒子下,margin取百分比,是相对谁取值的
浏览器兼容问题
捕获和冒泡
http 三次握手,和https握手
事件循环,就是定时器的使用。并且出了一个题。问输出什么
var now =new Date();
var timer = setTimeout(function(){
console.log(new Date()-now);
}, 300);
while((new Date()-now)<1000){};
给出上题中,堆栈的执行过程分析
说一下Mvvm和Flux两种框架
手写一个工厂类方法,并在它的基础上给出装饰者模式
实现在一个方法A的调用之前都会先调用方法B, 不允许更改接口和调用方式(钩子和职责链)
手写一个观察者模式,然后再说一下怎么实现发布订阅模式(不能依赖任何第三方框架或已有的实现)
实现一个双向数据绑定,就像angular、react或者vue这种mvvm框架中的双向绑定一样
inline 和inline-block的区别
对glup和grant有了解吗,简要说一下
怎样设计实现bootstrap中的栅格系统
操作dom的方法,主要问了取dom对象的方法
聊项目
5
#京东(2轮技术面+1轮HR)
手写实现CSS两列等高布局,尽量给出多种方法
Z-index,出了一个题,BFC
//假定三个div已经使用了position:relative,
问三个div的层叠关系是怎样的,为什么
<div id='A' style='z-index: 2;'>
<div id='B' style='z-index: 5;'></div>
</div><div id='C' style='z-index: 3;'></div>
块级元素、行内元素、行内块级元素都有哪些?使用场景都是什么?为什么要用到行内块级元素
JS的数据类型,ES6里的Symbol
Ajax的实现原理, 手写封装一个ajax实现
jsonp的可以使用POST方法吗?如果要传递的参数超过了get的最大长度,要怎么办?还有其他哪些跨域方法?
http三次握手,为什么要这样设计?如果改成两次握手会产生什么问题?
http四次挥手
EL表达式,jsp模板
ant-Template前端模板
css预处理器,Less和Sass
聊项目
安全策略,DMZ和vlan划分
神经网络算法
二面聊项目,聊架构和细节
最后,诚挚的祝愿大家都能有自己心仪的offer。。。