作者:Thescavenger

链接:https://www.nowcoder.com/discuss/163165

来源:牛客网

你需要的前端面经

个人情况

本科,成都双非大学,大三开始正式学习前端,主攻 react,目前大四。已拿美团、字节跳动 offer,网易的正在等结果

博客原文

欢迎关注个人 github:https://github.com/lawler61/blog,在那上面会实时更新

字节跳动面经

一、笔试,2 个小时

一共 8 道问答题,有问答、编程、手撸原理等。当初以为全部是高难度算法,准备了好久的算法,结果考的很少。不得不说字节跳动的前端提前批挺人性的(单从我角度上看)

1、实现一个类可以完成事件 on, once, trigger, off

关键词:订阅-发布模式

2、发布新闻时需要提醒发布的时间。写一个函数,传递一个参数为时间戳,完成时间的格式化。如果发布一分钟内,输出:刚刚;n 分钟前发布,输出:n分钟前;超过一个小时,输出:n小时前;超过一天,输出:n天前;但超过一个星期,输出发布的准确时间

3、谈谈计算机中原码,反码,补码以及它们之间的转换

关键词:正数、负数、0

4、格式化数字。输入:12345,输出:12,234;输入:2345.6789,输出:2,345.6789。要求:使用正则和非正则两种方式实现

5、给一段文本,将文本数组化,示例如下:

asd ehe  rjr
d  erregrnt eruk
rth sthst ar   gae// 输出
[asd, ehe, rjr]
[d, erregrnt, eruk]
[rth, sthst, ar, gae]

二、一面,视频面,90 分钟

笔试难度整体中等偏上,2 天后,hr 打电话说过了,约个面试时间

1、自我介绍

2、mobx 和 redux 区别

3、http 常用的请求方式,区别和用途

关键词:get,post,put,delete...

4、http 常用的状态码和使用场景

关键词:1x - 5x

5、http 缓存

关键词:强缓和协商缓存

6、http2

关键词:信道复用,server push

7、来写写代码,好勒

  • css div 垂直水平居中,并完成 div 高度永远是宽度的一半(宽度可以不指定)
  • 下面代码执行顺序,并解释
async function async1() {console.log('async1 start');await async2();console.log('async1 end');}async function async2() {console.log('async2');}console.log('script start');setTimeout(function () {console.log('setTimeout');}, 0);async1();new Promise(function (resolve) {console.log('promise1');resolve();}).then(function () {console.log('promise2');});console.log('script end');

  • 实现函数能够深度克隆任何基本类型。附加题:实现对象中嵌套数组,数组中嵌套对象

8、前端性能优化

关键词:html,js,服务器

个人感受:一面是北京的一个小姐姐面的,问的问题偏基础,很中肯

三、二面,视频面,70 分钟

当前晚上就收到 hr 电话说过了,约个时间二面

1、讲讲订阅-发布模式,有几种实现方式

关键词:listener、Object.defineProperty

2、事件流

3、事件是如何实现的

关键词:订阅-发布模式

4、mobx 实现原理

关键词:Object.defineProperty,自定义数据类型提供操作 api

5、讲讲 redux 及其原理

关键词:发布-订阅模式 + reducer 纯函数管理

6、react 生命周期

7、diff 原理,key 如何使用

关键词:先根据 key 找,再遍历查找

8、setState 是否异步,为什么。如果连续 setState 5 次,react 如何处理

关键词:react 事件中 setState 浅合并

9、来写写代码

  • 实现这么一个类可以完成如下输出(可以不用到类中的函数)
class Observer {$on() {}$emit() {}}const data = new Observer({ a: 1 });console.log(data.a); // 输入: 1data.$on("a", (newValue, oldValue) => {console.log(newValue, oldValue);});data.a = 2; // 输入: 2 1

10、new 一个构造函数发生了什么

关键词:除了那 4 步,还可以从 EC,AO,VO 对象上说

个人感受:二面明显难度加大许多,一面面基础,二面面框架,就连手写代码都是 Vue 的基本实现原理。以为会凉,伤心好久

四、三面,视频面,60 分钟

过了两天,hr 打电话说过了,约个三面时间,面试官忙,改到了下周

1、讲下 MVVM 和 MVC

2、讲下两者的区别,什么场景下适合用

3、讲下 angularJS 和 angular 的区别

4、为什么 angular 取消默认双向绑定

5、还用过其他架构吗(估计想问 MVP)

6、new 一个构造函数,如果构造函数返回 return {}、return null,会出现什么情况

关键词:还可以试试 return 1; return true; 会出现什么情况

7、CDN 原理

关键词:DNS 查询,负载均衡

8、来写写代码

  • 顺序发送 4 个请求 a,b,c,d,要求按照顺序输出,即如果先返回 b,则不输出,再返回 a,输出 a,b

9、V8 内存回收机制

关键词:老生代,新生代。引用计数、标记清理

10、webpack 打包优化

关键词:dll、多线程...

11、你认为 webpack 哪里打包慢

个人感受:面完后自闭了,三面是偏架构方面,一来就直接怼 MVVM,MVC,没有准备这方面,还好其他问题大部分答上了,扳回一城吧

五、整体感受

字节跳动无论是前端、后端、移动端都难度都还是在线的,而且每次面试的注重点是明确的,层次是清晰的,难度是把控好的。整个过程中面试官也很给力,看得出来是提前看了简历的,根据之前的面试准备好了问题的。面试完后,会有专门的面试考评团对面试者进行考评,如果有没有考察到的点可能会加一面,这我是第一次听说,不过仔细想想这样没毛病,也体现了这个公司对面试者的重视。总的来说,面试层面上,字节跳动做的相当好

网易面经

网易我是没有笔试,某部门直接打电话说面试的,说是补招

一、一面,视频面,70 分钟

一面也是个小姐姐,一本正经的

1、mobx、redux 区别

2、react diff 算法

关键词:节点查找,同级比较

3、react 事件机制

关键词:事件代理,冒泡

4、原生事件哪些不冒泡,react 如何处理

5、react-redux 原理

关键词:context,provider,带上 dispatch

6、父组件 C 有两个子组件 A、B,B 有 C 传来的 props。问如果 C 传递给 B 的 props 改变了,A 会怎样的处理,执行哪些钩子

7、讲下 router

关键词:链接和视图同步

8、react 15 16 有哪些钩子不同

9、http 缓存

10、前端安全有了解吗

关键词:xss,csrf

个人感受:网易一面难度整体略微比字节跳动二面低点(就我遇到的而言),感觉网易挺狠的呀,一面都这么难,以为要凉

二、二面,现场面,50 分钟

两天后 hr 打电话说一面过了,邀我去北京现场面,小激动

1、讲讲你用 three.js 做的这个项目

2、3D 的立体图如何实现

关键词:正方体形,球形

3、react 生命周期

4、componentWillMount 和 componentDidMount 的区别

关键词:真实 dom

5、react 学习中遇到的难点

6、H5 项目如何适配

关键词:vw,rem,fastclick...

7、node 中间件机制

关键词:请求截获,挂上属性

8、generator, yield。附加题:co 模块如何实现

关键词:线程让权,状态机

9、xss 及防御

关键词:储存型、反射型、dom 型

个人感受:现场面等了好久,以为自己走错房间了,我想如果面试官不稍微解释下为啥迟到我就直接不面了。面试官也没有提前准备,拿着简历看了一分多钟才开始

三、三面,现场面,30 分钟

由于二面直接过了,二面的面试内容还没有上传上去(因为是现场),三面的面试官同样也没有准备,像是 hr 临时拉上去的,看了简历一分钟才开始。面试过程中还不停用手机催促赶紧发来一、二面内容。所以也没问些啥

1、mobx、redux 区别

2、H5 项目都干了些啥

3、做的项目流程是怎样的

4、如何规划一个项目功能

5、印象深刻的 eslint 规则

6、react 15 16 的区别

关键词:钩子,移除模块,createProtal...

个人感受:现场面有点失望,我一直是网易的死忠粉,或许是期望越大失望越大。不过我看网易的现场面确实准备的不充分,等了很久的人不止我一个,甚至还有人来到现场都给安排的视频面,可能是面试官太忙吧,或者出差啥的

四、整体感受

网易整体面试难度还是有的,就是现场面处理的不是很好。作为死忠粉的我还是要说一句,可能确实是因为面试官太忙了,三面的面试官说面了我马上就急着有事去做。另外在现场等待时,网易的小哥哥小姐姐们也很养眼,颜值在线。嗯,就扳回到这吧

美团面经

由于美团是去年秋招拿的 offer,当时觉得自己还是很菜就没发了,能想到多少是多少吧

1、讲讲 promise

关键词:promise A+

2、防抖和节流

3、flex 布局

关键词:justify-content, align-items, basic, shrink, grow

4、xhr,fetch,axios 的区别

5、用 promise 实现一个请求超时功能

关键词:promise.then 与 setTimeout 并行

6、three.js 如何创建一个 mesh

7、讲讲你了解的 three.js 原理

8、哪些常用排序算法,大概如何实现

小技巧

当面试官问,有什么问题问我时,这两个问题我通常是必问的

1、如果我很有幸来到了 XX 公司,作为实习生 / 应届生的我,公司会有怎样的安排

像面试官表现你心中的渴求和对这个公司的喜爱,顺便听下公司业务线自己喜不喜欢

2、对于刚刚的面试,面试官觉得我有哪些地方不足,或者说可以改进的地方

注意!不是让你问 “面试官呀,你觉得我面的怎么样啊,能过不啊”。而是询问就他的工作经验而言,作为一个实习生,自己哪些地方不足,有待加强的地方,无关乎面试结果。但是通过面试官的回答你还是可以大致判断出你给他留下的印象,以及通过的可能性
例如:
字节跳动二面面试官回答的:嗯,你基础还是可以,代码弱了点。
有些面试官会答的很全面,有些则是一句带过。从这里话里是能看出,我是有一定过的可能性
字节跳动三面面试官:你看的东西确实很多,但还是要注重实践。
可以看出还是有过的可能性

最后

1、欢迎关注个人 github:https://github.com/lawler61/blog,在那上面会实时更新。近期也会抽时间把题目的解答放上去。欢迎大家来一起讨论,共同进步

2、去年的今天我一样也是愣头青,硬着头皮上战场,然后落得惨败。不过自己还是拼命努力,狂怼基础,硬看源码,每天练习,最后斩获 offer。极少人会在意你的出身(可能你自己算一个),双非依然可以进大厂,只要你足够优秀,能面的面试官闭嘴(指当前阶段的问题中,没有什么能难倒你),那么你就可以反过来选择大厂

3、加油吧少年!你能行的!

与作者交流:https://www.nowcoder.com/discuss/163165

更多笔经面经:https://www.nowcoder.com/discuss?order=0&type=2

fetch 不是xhr_春招|前端2019应届春招:不是被大厂选,而是选大厂(字节跳动,美团,网易)...相关推荐

  1. 2019计算机单招试题,2019高职单招计算机类专业练习卷(2)

    <2019高职单招计算机类专业练习卷(2)>由会员分享,可在线阅读,更多相关<2019高职单招计算机类专业练习卷(2)(16页珍藏版)>请在人人文库网上搜索. 1.2019年福 ...

  2. 算法岗位2019年秋招面试

    算法 [阿里.转转.百度.陌陌.微店.汽车之家.地平线.字节跳动.京东]春招实习生上岸,感谢大家的帮助,分析面试经历 https://www.nowcoder.com/discuss/192224 [ ...

  3. 算法岗位2019年秋招面试题预备-从2019年实习看秋招

    算法 [阿里.转转.百度.陌陌.微店.汽车之家.地平线.字节跳动.京东]春招实习生上岸,感谢大家的帮助,分析面试经历 https://www.nowcoder.com/discuss/192224 [ ...

  4. 双非菜鸡的春招之路!顺丰,vivo,携程,字节跳动,希望我的面经对你们有帮助!

    前言 本人双非本科,物理专业,无实习经历,菜鸡一枚. 差不多3月初开始投递简历,总共30余家公司,简历没过的有十家左右,3月中旬陆陆续续参加笔试,面试.一些笔试因为时间冲突或者后续流程等太久,就没有参 ...

  5. # 字节数组转uint32_字节跳动客户端校招面经(21届秋招内推)

    在开始之前说说我的基本情况:c9本科双非研究生20届毕业,6月22号入职深圳今日头条,在2019年12月搭上校招补录的末班车上岸,岗位是android客户端开发工程师.此文记录一下我之前的面试经验,顺 ...

  6. 字节跳动前端用什么框架

    字节跳动前端用什么框架,字节跳动期权换购是什么意思? 字节跳动前端用的框架都是脚本框架比较多一点的. 字节跳动面试和hr聊的很好 但是没通过 聊得好不见得HR就认为你适合字节跳动.你们只是交流的比较愉 ...

  7. 2019春招前端实习面经

    给 「前端开发博客」 加星标,每天打卡学习 长按二维码即可识别"进入网页"查看哟~ 1.2019春招前端实习面经 从2019.1就开始渐渐的进行复习,2月末开始面试,到现在四月中旬 ...

  8. 京东2019年春招题(前端)

    京东2019年春招题 最长区间 思路: 把字符串与自身拼接,找新字符串中的连续1的区间长度,考虑原字符串全为1或全为0的情况, coding #include<bits/stdc++.h> ...

  9. 字节跳动2019春招后端开发工程师-笔试题解析

    一.简介 字节跳动2019春招第三批在线笔试(后端开发工程师)已结束,结果也是凉凉.本文主要是分析这次的题目,并给出代码,以供大家参考和讨论,如有错误之处,还望帮忙指正,谢谢每位优秀的程序员. 二.题 ...

最新文章

  1. log库spdlog简介及使用
  2. matlab最小二乘法参数辨识,基于最小二乘法的MATLAB辨识仿真实验
  3. HDU 1153 magic bitstrings(读题+)
  4. Host Switch Plus结合nginx使用
  5. python的序列类型及其特点_Fluent Python 笔记——序列类型及其丰富的操作
  6. LR为什么用极大似然估计,损失函数为什么是log损失函数(交叉熵)
  7. flyway配置mysql_Flyway快速上手教程
  8. 开课吧:OOM常见的解决方案有哪些?
  9. java--小示例:-3-可以作为测试内容使用
  10. Rootkit 后门的利用
  11. 不使用CAD转换工具,你能转换CAD文件格式吗?
  12. 变废为宝,用旧电脑自己DIY组建 NAS 服务器
  13. 漫画 | 揭密微信诞生记之民间传说
  14. Unirech腾讯云国际版-使用腾讯云服务器手动建立WordPress 个人站点Linux系统教程
  15. 华硕ac86u文件服务器,数码教程资讯:华硕RT-AC86U路由器怎么设置FTP共享服务
  16. JAVA多线程读写文件如何做到线程安全?(文件锁,FileChannel)
  17. Profibus-Dp 工作过程介绍
  18. 针对meshlab应用纹理出现错误的解决方法(You need to have at least one valid raster layer in your project)
  19. 【ParaView教程】第四章 常见问题 —— ParaView中的各种流线生成方法
  20. windbg-!cs、~~[TID](经典死锁)

热门文章

  1. paip.获取proxool的配置 xml读取通过jdk xml 初始化c3c0在代码中总结
  2. oracle收发邮件存储过程
  3. Fedora 10初体验
  4. 【剑指offer】面试题21:调整数组顺序使奇数位于偶数前面
  5. Leetcode--33. 搜索旋转排序数组
  6. json里面的list数据取不出来_[工具]用kaggle API下载数据集
  7. java 并发 set_高并发下的Java数据结构(List、Set、Map、Queue)
  8. java父包引用_父类引用指向子类对象(java)
  9. python中def main是什么意思_关于python:为什么使用def main()?
  10. python中实现sigmiod功能