2018 春招面试小记

转眼到了研二找实习工作的时候,因为项目的原因,并没有好好复习,从 3 月初开始准备投递简历到 5 月底入职实习公司,实在是非常累同时也收获很大的一段时间。

春招历程

公司名称 部门 方式 技术面次数 起止时间
腾讯 腾讯云 电话 1 3-12
阿里 蚂蚁 电话 2 3-13/19
腾讯 TEG 电话 1 3-22
携程 旅游部 线下 1 3-24
搜狗 社区搜索 视频 1 3-27
链家 - 线下 2 3-28
腾讯 QQ 钱包 电话+线下 3 3-29/4-17
头条 PGC 视频 3 3-31
作业帮 未知 线下 1 4-4
京东 无界零售 线下 2 4-20
百度 - 视频 3 4-22
猿辅导 - 视频 1 4-25
阿里 - 视频 2 5-27

面试记录

腾讯一面(腾讯云)

  1. 没有自我介绍,直接开始问基础
  2. es6, letvar 的区别
  3. 箭头函数,this 指针
  4. nullundefined 的区别
  5. 把字符型数字转换成数字,都有哪些方法
  6. callapply 的区别
  7. Array 都有哪些方法
  8. 如何复制对象,深拷贝/浅拷贝,如何复制数组
  9. 浏览器端都有什么实现异步的操作,nodejs 端又有哪些
    • setTimeout,setInternal,Promise,async/await,requestAnimation(原理)
    • process.nextTick,…
  10. PromisesetTimeout 的区别,执行优先级
  11. html5 的新特性, perform
  12. 如何查询 dom 元素,如何添加 dom 元素
  13. 重绘和重排,如何避免重排
  14. web 安全,sql 注入,xss,csrf,如何防止
  15. css 都有哪些选择器,它们的优先级(id,类,tag…)
  16. history的实现方式
  17. react 的生命周期
  18. js 事件捕获和冒泡,如何阻止
  19. 如何阻止默认行为(e.preventDefault),IE 在这方面有何区别
  20. 跨域的实现方式,简述 jsonp、cors
  21. 浏览器缓存机制
  22. http2 的新特性
  23. https 与 http 的区别
  24. http 状态码,304,403
  25. sql 查询的左连接和右连接有何区别
  26. 看过什么源码,学习前端的方式有哪些

阿里(蚂蚁金服)

一面

  1. 自我介绍
  2. 挑一个印象最深的项目介绍一下
  3. 在其中负责什么角色
  4. 有什么技术难点
  5. 题目:npm 本地化,如给定 100 个 npm 包名,如何下载所有的依赖包(先解析依赖,缓存,并发 )
  6. 前后端数据交互的方法
  7. Git mergerebase 有什么区别,各自的适用场景,如果有一个主分支和两个 checkout 出的功能分支,一个先合并,另一个应该用 merge 还是 rebase
  8. Webpack、Gulp、Grunt 的区别,为什么要用这些东西
  9. callbindapply 的区别及为什么要用这些
  10. CSS position 的属性值及各自含义
  11. React render 如果<A><B/></A>Aprops 发生变化,B 是否会 rerender,如何避免
  12. 开放性问题:如何看待前端,为什么选择前端
  13. 开放性问题:平时学习前端的方式

二面

  1. 自我介绍
  2. 项目技术栈
  3. 项目技术难点,如何解决的
  4. dva 中为什么用 generator/yield 而不是 async/await
  5. vue / vuex 相关问题,有没有用过 vuex 插件
  6. 有没有写过自动化发布测试的代码
  7. 最近看的技术文章,详细说一下

腾讯一面(TEG)

  1. 自我介绍
  2. 项目介绍
  3. 项目负责内容,技术难点,选型理由
  4. Webpack、Gulp
  5. React 自己封装过的组件
  6. Web 安全问题及应对方法
  7. Spring 相关
  8. 有没有看过 Spring 源码
  9. Servlet + JSP 存在的问题
  10. 项目首页加载时间,太慢存在的问题,如何优化
  11. 跨域,JSONP,如何支持 PUT 方法(Spring 配置响应头)

搜狗一面(社区搜索)

  1. 自我介绍
  2. 项目难点介绍
  3. jQuery 链式调用
  4. ['1', '10', '100'].map(parseInt)
  5. 组合继承(Animal<-Cat, 主要考察普通原型继承 constructor 被覆盖)
  6. React 和 Vue 的区别
  7. Webpack 了解多少
  8. React 和 Vue 是如何实现解析 .jsx.vue

链家网

一面

  1. DOM0/1/2/3 的事件使用区别,捕获和冒泡
  2. string 如何拼接
  3. 写一个事件代理
  4. 写一个布局的 css,实现水平和垂直居中
  5. 重绘和重排
  6. argumentscalleecaller
  7. 简单说了项目用到的技术
  8. url 的组成部分,并且改变是否会引起页面刷新
  9. history 和 hashtag 在 SPA 中的应用
  10. 平时怎么学习 js 的

二面

  1. 项目中遇到的难点
  2. 移动端 h5 中如何识别手机设备信息,查到的一种方法
  3. 一个数组,找出其中重复次数大于 2 的元素的个数

腾讯(QQ 钱包)

一面

  1. 自我介绍
  2. 聊项目
  3. 问基础
  4. 闭包
  5. DOM 事件三个阶段
  6. Web 安全,如何防范
  7. 前后端数据通讯方式
  8. 浏览器输入 url 之后…
  9. 如何突破浏览器请求并发限制
  10. setTimeoutrequestAnimationFrame 的区别
  11. Http 2 如何实现多路复用
  12. es6 的 letconst,和 var 有什么区别
  13. React 和 Vue 的异同点
  14. 如何实现事件代理
  15. 什么是执行上下文
  16. 算法:斐波那契数列
  17. es6 箭头函数有何不同

二面(线下)

  1. 自我介绍
  2. setTimeoutsetIntervalrequestAnimationFrame
  3. 重排/重绘,及如何避免
  4. 优化:动画掉帧/卡顿如何优化
  5. 优化:一个页面全是图片,有很多,如何优化
  6. 优化:页面加载如何优化
  7. 了解 Service Worker 吗,和 PWA 有什么关系
  8. 脚本加载方式 asyncdefer 的区别
  9. Web Worker 使用场景
  10. 双向绑定是如何实现的
  11. 看过 React 和 Vue 源码吗,哪部分
  12. 写博客吗
  13. 有没有开源的东西

三面(线下)

  1. 自我介绍
  2. 项目介绍,技术难点,解决方案
  3. 闭包
  4. Webpack、Gulp、Grunt 区别
  5. 最近学习的技术
  6. Linux 了解吗,bash
  7. zookeeper 一致性怎么实现的
  8. 为什么用 Oracle / Mysql / Mongodb 等数据库
  9. mongodb 数据太大内存放不下怎么办
  10. Web 安全及在项目中如何实践的
  11. 移动端如何适配
  12. 开发过微信小程序吗
  13. React / Vue 在项目中的实践
  14. Nodejs 了解吗
  15. 解决过浏览器兼容性问题吗
  16. 大数据/高并发等场景下的性能优化(这块很弱)
  17. 开放性问题:淘宝和京东是如何盈利的
  18. 开放性问题:如果一个城市要建加油站,会如何考虑
  19. 开发性问题:全世界人喝的啤酒能否灌满青海湖

今日头条

一面

  1. 实现一个左边定宽。右边自适应的布局
  2. 原生 XMLHttpRequest 怎么使用
  3. x => xx => {x}x => ({x}),分别以参数 1 调用,输出是什么
  4. 算法:求一个二叉树的深度
  5. 纯 CSS 实现一个三角形
  6. 上传文件 FormData,还有什么 MIME 类型
  7. 事件代理
  8. 捕获、冒泡
  9. 项目中的难点
  10. async/defer 的区别
  11. 微信网页版登录如何实现的

二面

  1. 自我介绍
  2. 项目难点
  3. React v-dom
  4. 算法:驼峰命名的字符串转换为一个连字符命名的字符串
  5. cookiesession 的区别,http-only
  6. React 组件生命周期
  7. Layout(reflow) 和 Paint(repaint),分别如何优化
  8. 前后端通信方式
  9. DNS 解析过程
  10. 项目部署方式
  11. 算法:实现一个图的 getDepth(start, depth),找出起点开始深度为 depth 的点集合

三面

  1. 自我介绍
  2. 算法:dijkstra
  3. 业务逻辑 / 业务抽象 / 现有技术实现,从这三个层面说一下自己的经验
  4. 有什么让你自豪的项目
  5. 写过 webpack 插件吗

作业帮一面

  1. 画一个布局: <div class="A"><div class="B"></div></div>, .A {width: 100px; height: 100px; margin: 50px;} .B {width: 50px; height: 50px; margin: 100px;}
  2. 左右定宽,中间自适应的布局
  3. alert(a); var a = 12; function a() { return a; } 的输出结果
  4. JSON 对象转 JSON 字符串
  5. 两个有序数组,不使用循环实现归并
  6. 两个数组,找出其中交集的唯一元素,如[1,1,2,3],[1,2] => [1,2]

京东(无界零售)一二面

  1. 项目介绍
  2. 画项目页面示意图并介绍
  3. jQuery 和 React、Vue 的区别
  4. Vue 组件的生命周期
  5. Vue computedwatch 的区别
  6. computed 是如何实现的
  7. Webpack、Gulp、Grunt 的区别
  8. 如何实现一个树形组件(懒加载/性能)
  9. CSS 如何实现三角形
  10. React/Vue DOM-diff 算法
  11. React 和 Vue 是如何实现的,有何优点
  12. 缓存
  13. 如何使 CDN 上的缓存失效

百度

一面

  1. http 常用状态
  2. get post 的区别
  3. 前端存储
  4. localStorage 能存储对象数据吗
  5. 语义化标签/好处
  6. 如何阻止 a 标签跳转
  7. 隐藏页面元素的方法
  8. css 实现三角形
  9. 数组添加、删除、替换元素
  10. 事件代理
  11. 同源策略
  12. 跨域解决方案
  13. jsonp 原理
  14. js 原生动画
  15. es6 语法用过哪些
  16. constvar 区别
  17. 箭头函数的 this
  18. 如何避免嵌套回调
  19. Promise.all (参数是什么,返回和参数一致吗)
  20. 编写函数检验是否为数组
  21. 写个正则校验 `xx@baidu.com`
  22. nodejs 用过吗
  23. require 是如何找模块的
  24. nodejs 子进程是什么原理
  25. 了解的前端框架、类库,优缺点
  26. react 中父子/同级组件传递数据
  27. diff 策略
  28. 生命周期
  29. 发请求在哪个周期
  30. 工程化工具
  31. 百度开源 FIS 了解吗
  32. 项目周期一般多久/多少人参与
  33. 开发过 SPA 吗,好处是什么
  34. 代码调试思路
  35. 学习新技术的途径

二面

  1. 自我介绍
  2. 项目介绍
  3. Vue 的 vue-loader 是做什么的
  4. computed 是如何实现的
  5. 编程:实现一个函数 getTop3Tag 获取当前页面内出现次数最多的 3 个标签名称
  6. 编程:实现一个函数 getQuery 获取并解析当前页面的查询字符串
  7. 编程:实现一个函数 log,能够在控制台输出内容时在前面加一个 'mylog:'
  8. 读程:各种循环 + setTimeout 的输出,就是考察循环中异步的闭包,最后一个加了 Promise,有一段答错了(见下面的代码块)
  9. 了解移动端开发吗(说不了解,只做过微信公众号里的页面开发)
  10. weuicheckbox 那种开关按钮是如何实现的
  11. 平时开发用什么操作系统(Window/Linux)
  12. 了解 Linux 系统吗,都知道什么
  13. 两列布局如何实现,左侧定宽,右侧自适应(双飞翼和圣杯)
  14. CSS 常用选择器及其优先级
1
2
3
4
5
6
7
8
for (var i = 0; i < 5; i++) {
setTimeout(
(function(i) {
console.log(i);
})(i),
i * 1000,
);
}

三面

  1. 介绍一个项目
  2. 项目难点及如何解决的
  3. 如何看待前端
  4. 如何学习新技术
  5. 最近有了解到什么新技术
  6. 有什么兴趣爱好,如何平衡工作和生活
  7. 如何看待 native 开发和 hybrid 开发

猿辅导一面

  1. 自我介绍
  2. 项目介绍,难点
  3. React、Vue、Angular 的区别
  4. Vue 双向绑定如何实现的
  5. Spring Boot Data Rest 权限是如何控制的
  6. 编程:"a bc d" -> "a1bc2d"
  7. 编程:"todAY baR" -> "rab YadoA"
  8. 编程:已有fetchUrl(url, callback),编写batchFetchUrl(urlList, callback)

阿里一面

  1. 自我介绍
  2. Promise
  3. async/await
  4. 阿里的前端开源产品有哪些了解
  5. 飞冰
  6. 浏览器工作原理
  7. rn 的架构
  8. weex 中支持 rn 的原理

小结

问题偏好一般也会跟简历内容有关,尤其是项目,要注意从背景、问题、对比方案、解决方案、选择理由、使用效果等几方面来说。

腾讯

特别喜欢问优化,尤其是 Web 图片优化。需要对缓存,http2,cdn 等特别了解。熟悉前端优化的常用手段等。

阿里

偏向问工程化,工具链,项目难度和解决方案等。

百度

非常注重基础,问的很细。

今日头条

每面都有两个算法题,前端的算法到简单 dp 已经封顶了,不会特别难。大多是跟数据结构有关,尤其是二叉树。

学习参考链接

打赏