五年经验三年前端面经,阿里腾讯头条全Offer,回馈牛友
混迹牛客好几年,今年终于拿了个认证头衔,特来回馈牛友,把压箱底的面试记录都翻出来了。
时间和公司跨度很大,按数量来说应该有成为爆贴的潜力吧 :p
希望各位看过之后小手指占赞收藏回复哦!
2017
3 月
美团一面
- 元素居中问题
- 动态规划
美团二面
- 项目经验
- 二阶动态规划
11 月
头条深圳一面
元素 A 垂直水平居中,高度始终为宽度 50%
== 符号规则
- [] == false
- {} == false
- [1] == [1]
aync, setTimtout, Promise 之间先后顺序
async function async1() { console.log('async1 start'); await async2(); console.log('async1 end'); } async function async2() { console.log('async2'); } console.log('script start'); setTimeout(() => { console.log('setTimeout'); }, 0); async1(); new Promise((resolve) => { console.log('promise1'); resolve(); }) .then(() => { console.log('promise2'); }); console.log('script end');for 循环 var 与 let
monkey patch Funcion.prototype.bind 方法,让其满足 bind 构造函数时自动创建原型链
手写节流函数
(data - 原始数组, n - 取出的数量, sum - 取出数量的求和值): boolean, 找到加和等于 sum 的一个子数组
react setState 是否异步,状态和 setTimeout 先后关系
头条深圳二面
- 上一次面试的评价,你是怎样回答问题的,自评
- 项目经历
- 实习经历
- 做了哪些事情?
- 自评实习表现?
- 出了怎样的问题?
- 学到了什么东西?
- 对方给的引导如何?
- HTTP 协议
- 缓存控制
- Cookie 相关问题
- 如何鉴权,如何设计 Cookie 结构?
- Cookie 的 http-only 属性
- 网络安全
- XSS,XSS 能用来做什么,预防
- http-only 可以预防 XSS,但有什么问题?
- 如何实现微信扫码网页端登录的功能?
- 有哪些良好的工作习惯?
2018
2 月
腾讯云一面
- 比较复杂的项目?
- 如何改进项目?
- 使用 TS 带来的成本在哪里?
- CSS3 和 CSS2 的区别和改进?
- 移动端布局使用的适配方案?
- 等比缩放解决不了高度上的适应,怎么办?
- ES6 和 ES5 的区别?哪些改动涉及到语言层面相对来说比较复杂?
- let 与 var 的区别?
- 函数级和块级作用域的区别?
- 变量查找的过程?
- 什么是父作用域?
- 什么是闭包?
- 闭包如何访问到函数内部的变量?
- 变量声明解析发生在编译的什么阶段?(词法分析)
- Promise 是什么?是函数式编程中的什么东西?
- IO 是什么?
- 函子是什么?
- 用可理解的语言描述 Generator
- Proxy 应用场景?
- Async 语法带来了什么?
- let 与 var 的区别?
- Vue 和 React 的状态管理有什么区别?
- 如何解决单一状态树带来的重复组件状态管理冲突问题?
- 描述 Webpack 进行打包阶段
- Webpack 生成的是什么东西?大概描述其原理
- Gulp 做了什么事情?与 Webpack 你觉得有什么区别?
- HTTP 协议
- 1.0 和 1.1 有什么区别?
- 避免 TCP 三次握手?
- HTTP/2 提供了什么特性?
- 为什么 HTTP 1.1 还会有连接的闲置?(因为必须顺序发送响应)
- 描述 HTTPS
- HTTPS 为何能保证安全?其加密的是什么部分?(非对称加密部分内容,大多数是对称加密,答的不好感觉产生了歧义)
- node 的内存垃圾回收机制?
- 对于函数式和响应式编程的理解?
- 以前是不是做过交互?
蚂蚁金服 一面
- 专业课程体系?
- 一堆 ES6 相关基础问题
- 基本排序算法和数据结构
- 找第几大的数字(提示快排)
- 链表怎样判断有环,为什么
- 个人性格?
蚂蚁金服 二面
- 二叉树遍历
- 递归遍历
- 非递归遍历
- 严格等于与不严格等于的区别
- 前端模块化的理解,优势
- AMD 和 CMD
- Webpack
- 组件化理解?
- Webpack
- 实现原理
- CSS Loader 实现方法?
- 熟悉的开源库?参与的开源项目开发??
- ACM 经历
- React
- 虚拟 DOM 优势?
- 如果不用虚拟 DOM 其他实现方式?
- Redux 理解?
- 自己的最好的项目?难点?
- 个人性格?
腾讯云 二面
- 自我介绍
- 介绍 ES6
- HTTP 协议
- 报文结构
- 有连接?
- 常见头
- 缓存相关
- 缓存相关头识别顺序和优先级
- 安全方面
蚂蚁金服 三面
- 自我介绍,专业介绍,学习经历
- Java 熟练度
- JS 异步编程模型
- Event
- Cb
- Promise
- 数据库经验
- 项目框架,选型
- 推动后台做过什么?
- 其它人评价
- 个人规划
- 其它优点
腾讯云 三面(笔试)
写一个正则来验证url的合法性
完成方法count(str),传入字符串,返回字符串中出现次数最多的字符及次数
完成方法subset(arr1,arr2),传入两个数组,判断数组arr1是否为数组arr2的子集
完成方法shuffle(arr),传入数组arr,返回随机打乱后的数组
书写一次POST请求过程可能的HTTP请求报文和响应报文
假设你有一个函数,产生[0, 5)之间的随机整数,每个数字概率1/5,如何使用这个函数产生[0, 7)之间的随机整数,每个数字概率1/7
现在有一个基准数组 records,先要求你维护其子集 selection 数组(初始为空),维护操作包含删除和插入。
插入:给定 records 数组中的一个元素,插入到 selection 中
删除:给定 records 数组中的一个元素,把它从 selection 中删除
现在要求你: " 实现 insert() 和 remove() 方法来实现以上操作。
"设计一个算法,保证每次维护操作后,保持 selection 数组中的元素的偏序关系与 records 数组中的保持一致,分析你算法的复杂度。 请实现:
/** 请自行设计函数的参数 */
function insert() {
}
function remove() {
} 腾讯云 四面
- ES6,7
- await 做了什么?
- async 函数取消?
- 302 过程
- websocket 建立过程
- TCP 三次握手
- -Vue diff 算法
- -元素类型替换的意义?
- 事件流程
- 鼠标相关事件
- koa-router 原理(不懂意思...应补 mt 经验)
- 路径匹配,静态资源,协议什级
- linux 常用命令
- react props 流程
- 实习相关
- 个人优点
- 如何证明学习能力?
腾讯云 五面
- 自我介绍
- 怎么学习的?
- 项目?
- 看了哪些书?
- 专业?
- 计算机相关课程?
- 基本排序算法,快排
- 基本查找算法,二分
- 网络
- TCP 三次握手
- 网络分层,TCP 层?
- 个人发展规划
小米 一、二面
- 自我介绍
- Ajax, Promise, Generator(return?), ES6 常规
- jQuery() 查询顺序(逆 CSS)
- CSS
- 盒模型
- Background 到 Border 的内?外?
- absolute 到 Border 的内?外?
- margin 合并
- margin 基于什么计算?why?
2018 秋招
蚂蚁金服 风控 一面
- 专业相关问题
- 实习经历
- 对不同公司的感受
头条 一面
- 自我介绍
- 观察者模式实现(就要个 unsubscribe)
- Promise 原理?
- koa next()
- 怎么 next() 等待的?
- 事件循环
- 如何继承两个类
头条 二面
- 自我介绍
- chainPromise
- throttle
- 搜索框实现
- 前端搜索算法(模糊拼音匹配)
- 正方形
- bind
- 同时继承
头条 三面(Offer)
- 自我介绍
- 项目 -> 讲的小程序
- 小程序的原理
- 前端怎样与 native 交互的?
- Babel 配置
- React diff 算法
- 系统设计:资源离线化
- 如何按使用和设备需求来引入 polyfill
美团 一面
- React 生命周期,Diff
- Gulp
- Webpack Plugin 原理?
- 安全
- HTTP Header,常用
美团 二面
- 测试框架
- 你会选哪种测试框架?
- Jest 的缺点?
- 遇到哪些问題?- 老代码写测试
- 怎样保证未来的人写你老代码测试时不痛苦?
- 构建系统
- 自动化?
- 构建?
- 优化点
- Vim 相关
- 算法
- 2n + 1 个数字,只出现一次的数,M = O(1/lgn), T = O(n).
快手 一面
- C++ 与 JS 的区别
- 编译过程
- 同步,异步
- HTTP 协议
- 报文
- 无狀态
- 数据库
- 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中所有重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是 [2,3]
- 负数
- 进程和线程
快手 二面(Offer)
- 文字,一行才居中,二行居左
- inline-block, margin-auto, outer text-align: left;
- 25 匹马,五个跑道,前 3
- n 个球,1 个不一样重
微信 一面
- 題
- 有序数组合并
- 手动实现 querySelector
- 画布迷官
- 待做
- 问
- 題(1) 像什么?
- 快排,归并的
- 区别(时空复杂度)
- 能否原地进行修改?
- 归并不能原地保持 nlogn,尽量少的空间实现?
- querySelector 简单谈谈
- 怎么实现属性选择器?
- 画布
- 两个方法,你选哪个
- 你觉得那个快?
- 遇到的最难的问题?
- Eslint 熟吗?
- React 你觉得出彩的地方?
- vdom
- state
- diff
- immutable
- pure
- fiber
微信 三面
- 一维空间 n 个点,找 x 的最近的
- 二维空间 n 个点,打 x 最近的(R 树)
- 常用的库?
- React, Redux
- Redux 基本概念?
- Math.random 应該放在哪?
- TS
- React, Redux
- 跨域的概念?
- 什么样的请求会发两次请求?
- Preflight 请求及其触发条件
- XSS 和 CSRF
- 印像最深的项目(重点在推动)
- 个人优点、缺点
微信 面委会 一面
- 专业是啥?学了啥课?
- 在学校时候做的项目里最难的是?
- 如何实现一个俄罗斯方块?
- 边际条件?
- 优化体验?
- 有没有在项目中对某个东西的深挖?(答:Promise,但不够好)
- 前端优化性能?
微信 面委会 二面(Offer)
- 説一个你比较满意的项目
- 你解决的问题?
- 怎么推动的?
- 技术细节?
- React 的优、缺点,与 Vue 的差别
- 要细节
- 出现的原因
- 浏览器兼容性问题
- Polyfill
- 如何实现一个 fixed 的兼容?
- node 的异步是怎么实现的?
- 如果有一个操作一定要同步,怎么办?
- HTTPS 握手过程?了解 RSA 算法吗?
- 你其它技术上的优点?
淘宝(Offer)
淘宝是我最后选择的地方,原因应该不用说了,至于面试题嘛……
有不少,非常多,但是!现在有个大活人在你面前,还不赶紧加起来?趁着阿里内推还没开始,现在还能 ”提前沟通“ 帮你提前看看简历和与我一起工作的机率(已经有非常多同学得到了和技术大佬/网红的一对一简历修改机会)!还可以内推今年的 2021 届实习!
另外网红 @小胡子哥 就坐在我旁边,有对他感兴趣的也可以加我,我帮你引荐!
为了识别身份防止广告,回贴再加楼主微信备注牛客 id,楼主才会加你!
另外产品、Java 后端、测试、运营的同学也可以找我内推~
========================================
希望各位看过之后小手指占赞收藏回复哦!
#阿里巴巴##腾讯##字节跳动##前端工程师##实习##内推#其实我就想招几个小鲜肉过来实习解解闷
加我聊骚也是可以的。

查看1道真题和解析