“金九银十“跳槽季,又到了面试求职的高峰期。好多小伙伴都会跳槽去找工做。若是你不跳槽,也建议把这篇文章看完,毕竟金九银十以后,就是金三银四了,老是逃不掉的css
你在面试的时候,是否遇到过如下问题:html
若是你中了其中2条以上,那本文必定要认真读完。
从9月开始,我分别面试了百度、快手、爱奇艺、阿里、滴滴、字节跳动、好将来、贝壳等8家互联网大厂,顺利拿到4家offer,并最终入职爱奇艺,年薪48万。
本文记录了以上8个互联网大厂的面试题目,带你全面了解——【最近,前端面试都问些什么】前端
百度vue
一、请分析如下代码执行结果node
二、请分析如下代码执行结果react
三、请写出 inner 的实际高度。linux
四、手写一个深拷贝函数。webpack
五、HTTP 状态码 301 302 304 403。程序员
六、手写发布订阅模式 EventEmitter。web
七、手写一个多表查询的 sql 语句。
当时用的是 left join 实现。
八、react 高阶函数的写法,一般有哪几种。
第一种是经过工厂模式直接 wrapper,第二种是经过组件反向继承的方式。
九、delete 数组的 item,数组的 length 是否会 -1。
不会。
十、mongoDB 中的 BSON 是什么?
B 表明二进制。
十一、关系型数据库和 nosql 查询效率谁高?
关系型是 B+ tree 查询效率相对较高。
十二、使用 node app.js 开启服务,如何让它在后台运行。
开启守护进程,在命令后加上 & 符号,表示开启守护进程来执行。
1三、尽量写出更多的数组反作用方法。
百度三面:
一、实现一个周岁函数,例如 fn('2018-8-8') 输出 1,只要是过了生日就 +1。
二、不断优化刚才实现的函数,用尽一切办法,多问一问还有吗?跳出本身的固定思惟圈。
阿里
一、vue 双向数据绑定原理,依赖收集是在何时收集的?
是在 created 生命周期以前,render 生成虚拟 dom 的时候。
二、react hooks 原理是什么?
hooks 是用闭包实现的,由于纯函数不能记住状态,只能经过闭包来实现。
三、useState 中的状态是怎么存储的?
经过单向链表,fiber tree 就是一个单向链表的树形结构。
React Hooks 原理
快手
一、请写出如下代码执行结果。
二、请写出如下代码执行结果。
三、ts 如何获取一个函数的类型,以及获取一个函数参数的类型。
四、ts 泛型约束的多种方法。
五、parseInt 的第二个参数是什么?
第二个参数表示将字符串当作几进制进行解析。
六、实现一个多列等高布局,多种方式。
七、函数提高,若是加了一个括号,还会提高吗?
不提高。
八、setTimeout 的第三个参数,能够传递函数的初始参数。
九、bind 函数的第二个参数,能够传递函数的初始参数。
十、使用 ts 时,若是不在 a 后面加类型,怎么建立一个 number[] 的数组?
十一、react 源码看过吗,<Component1 /> 最后编译出来是个什么东西,是个什么类型?
ReactElement 类型。
爱奇艺
一、浏览器渲染 js,html,css 的顺序。
二、react dom diff 算法,list 比较首先比较的是什么?
首先比较同层级元素,从左到右。
三、为何 react 要作成异步的呢?
四、对象的 {…} 解构,是 rest 吗?
是。
五、本身实现一个 Symbol Interator 。
六、options 头是在何时会进行发送。
七、sessionStorage 在两个 tab 窗口能共享吗?
不能,和后端的 session 相似,每个窗口对应一个会话层。
八、localStorage 存放的只能是 string 类型。
插入时须要将对象转换为字符串,读取时须要作 JSON.parse 转换。
九、写一个 0-100 的正则表达式。
十、linux 中怎么查看内存和磁盘。
十一、meta 标签用过吗,都用来作些什么?
滴滴
一、快速排序和二分排序选一个手写。
手写了一个快排。
二、手写一个 eventEmitter。
三、手写两个数组的交集。
四、webpack 运行流程,seal 方法以后都有什么?何时生成 chunk ?
五、ts 中 ThisType <T> 是什么?
ThisTypeT
六、手写一个 es5 继承。
寄生组合继承
七、react hooks 主要用来作什么?
hooks 介绍
八、https 有什么缺点?
三面问题:
一、你工做中作过的最牛的项目是什么?
按实际项目实话实说,可按缘由,过程,结果三个维度进行介绍。
二、深挖项目中的技术栈,追问项目中的难点,须要给出具体的解决方案。
根据实际状况说明便可,尽可能多表达你本身对该项目的思考。
三、针对项目中的优缺点进行分析,并让你给出相应的优化方案。
主要考察对项目的思考。
四、还有其余最牛的项目吗?
通常一个项目不够,尽可能多准备几个。
字节跳动
一、请分析如下代码执行结果
二、手写一个节流函数
手写节流函数
三、什么是装箱和拆箱
装箱和拆箱操做,可以在值类型和引用类型中架起一作桥梁。换言之,能够轻松的实现值类型与引用类型的互相转换。
装箱是将值类型转换为引用类型,拆箱是将引用类型转换为值类型。
四、什么是委托
粗略来讲,一个类想执行一个方法,但它自己没有这个方法,这个方法在另外一个类中,因而它“委托”那个类来帮它执行。
五、手写一个 reduce 方法。
六、手写一个模板字符串替换方法
七、看过 antd 源码吗,如何实现一个 Model,Message 组件?
只能猜测到 React Portals,未层看过源码,有待提高。
八、若是要设计一套微前端架构,说说你的具体思路?如何实现主页面事件注册机制?如何解决多个 iframe 同时通讯?
须要有落地实战项目,否则很难答好,消息加锁等。
好将来
一、同步,异步,阻塞,非阻塞,分别解释一下。
以烧水的案例来理解。
二、cdn 是如何匹配最近的节点的?
经过动态 dns 解析。
三、promise 实现一个 sleep。
贝壳
一、实现一个 css 布局,每一列的第一个和最后一个元素,在最左最右侧,其余的元素均匀分布。
案例:第一行 4 个元素,第二列 2 个元素。
二、请分析如下代码执行结果
三、请分析如下代码执行结果
技术面试通常分为三面。
一面:考察基础,必须过硬,如:js、css、html、tcp/ip 协议栈、浏览器渲染等。
二面:结合实际项目考察技术深度,如:react、vue、koa、ts、webpack 等。
三面:结合实际项目考察项目思考,如:react 的优缺点、前端方向的思考、以及解决问题的思考方式等。
前端程序员的福利
巴菲特有句名言:“人生就像滚雪球,最重要的是发现湿的雪和长长的山坡。”职业发展亦是如此,前端人除了埋头踏实苦干,更要懂得抬头思考远望,在行业变化中找到正确的方向。若是你想:
欢迎关注公众号:【fkdcxy,疯狂的程序员丶】 免费获取【大厂前端面试经验】
想了解更多前端开发者面试相关欢迎评论区留言或私信我!