如何拿到百度华为等6家名企offer?真题+攻略 | 牛客面经

?wxfrom=5&wx_lazy=1


【前端面经】收手了

百度、京东、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分别是对称加密的还是非对称加密的

  • 版本号排序(不允许借助现有的封装好的排序函数)


1

2

3

8.1.19

8.2.0

8.5.0


  • 模块化, webpack, AMD和CMD

  • 数据库索引的底层是怎么实现的,它的数据结构是什么

  • 盒子模型中的margin折叠问题

  • 两列等高布局,左右两列中间有个margin=20px,左侧定宽怎么实现,如果左侧不定宽怎么实现

  • 二维数组中,找出最大的m个数。(每一行都是非递减序列)


1

2

3

4

5

6

[

[10, 9, 8, 7],

.

.

.

]


  • 作用域, 原型链,闭包。手写一个闭包,并分析作用域。什么情况下,闭包会导致内存泄漏,手写给个例子。

  • 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+open

  • http包的格式和解析




4

#商汤科技(3轮技术面+1轮HR)




  • 常用的状态响应码

  • 手写快排

  • 手写实现求两个集合A, B 的差集,都要给出

  • 说一下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的层叠关系是怎样的,为什么


  • 块级元素、行内元素、行内块级元素都有哪些?使用场景都是什么?为什么要用到行内块级元素

  • JS的数据类型,ES6里的Symbol

  • Ajax的实现原理, 手写封装一个ajax实现

  • jsonp的可以使用POST方法吗?如果要传递的参数超过了get的最大长度,要怎么办?还有其他哪些跨域方法?

  • http三次握手,为什么要这样设计?如果改成两次握手会产生什么问题?

  • http四次挥手

  • EL表达式,jsp模板

  • ant-Template前端模板

  • css预处理器,Less和Sass

  • 聊项目

  • 安全策略,DMZ和vlan划分

  • 神经网络算法

  • 二面聊项目,聊架构和细节



最后,诚挚的祝愿大家都能有自己心仪的offer。。。





你可能感兴趣的:(如何拿到百度华为等6家名企offer?真题+攻略 | 牛客面经)