回馈牛客,全部面经献上
2021.8.2 17:00 字节(国际电商)一面
1.自我介绍
2.问项目
3.react组件之间的传值
4.react生命周期
5.发布订阅
6.闭包和this指向
7.原型链和作用域链
8.三栏布局
9.重绘重排
10.http1.0,1.1,2.0和https联系和区别
11.缓存
12.进程线程
13.代码题:
1.(1)点击按钮计数+1
(2)多次点击隔一秒更新一次(节流)
(3)点击按钮重置
(4)父组件传入值,重置值为父组件传入的值
2.求dom元素下所有dom元素个数
反问:
1.如何夯实基础:多看书和文档和一些技术博客,推荐了红宝书
2.点评:基础可以,广度也还行,但是深度不够,建议往深处挖掘。还有就是计算机网络的知识需要复习一下,代码需要多练
2021.8.12 10:00 用友一面
问的都是项目的问题,然后引申出react的一些问题,比如父子组件通信,生命周期等,提出的建议是需要更多在代码结构化管理、新事物的使用、没有任务时代码量上需要下功夫
2021.8.16 17:00 美团一面
1.自我介绍
2.项目,然后就项目先问了一些和技术没很大关系的问题,比如项目中的角色,学到了什么
3.react的一堆底层的东西
4.react生命周期
5.懒加载
6.状态码(304,404,402,504)
7.说到304就顺便问了问缓存
8.H5的localstorge和session storge
9.fetch和axios的区别
10.跨域
11.css选择器权重,伪元素伪类
12.代码题:经典跳台阶(斐波那契数列)
反问:
1.技术栈?都有
2.对于底层的知识如何快速补足?官方文档,想要深究就去看源码
3.评价?不能说,因为没有结束面试
2021.8.24 19:00 百度一面(40min)
部门:贴吧
1. 自我介绍
2. 项目介绍
3. css选择器及权重
4. js数据类型,引用和基本有什么区别
5. 实现instanceof
6. Array的方法,splice和slice有什么区别
7. 数据结构的数组和链表的区别
8. DOM方法
9. 两栏布局
10. 代码题:
(1)遍历给定DOM树,找到一个节点的所有子节点,并统计出现次数最多的元素
(2)斐波那契数列
反问:
1. 技术栈:Vue
2. 点评:基础挺好,但是表现欲不够
2021.8.27 15:00 快手一面(60min)
1. 自我介绍
2. 项目介绍
3. 跨域(要求详细介绍项目里用过的,然后追问了JSONP)
4. css选择器(和权重)
5. 垂直居中(开始说的都是改变父元素样式的,然后面试官对父元素不设置高度设置padding上下相等有些疑问,演示了一下。追问有没有不改变父元素样式的方法)
6. 状态码(要求会的全说,说了101,200,301,302,304,400,401,406,500)
7. 缓存(先介绍强制和协商,然后挖了一些属性问)
8. https(和http区别,加密解密)
9. 算法题
(1)使用闭包实现一个counter函数,全局下每次调用返回值+1
(2)给你两个有序整数数组nums1和nums2,请你合并num1和nums2,返回一个有序数组。初始化nums1和nums2的元素数量分别为m和n。不能使用sort
示例:
输入:
var nums1 = [1,2,3,7], m = 4;
var nums2 = [2,5,6], n = 3;
输出: [1,2,2,3,5,6,7]
(开始说了一下自己的想法,用concat合并数组然后在不能用sort的情况下想用冒泡排序,面试官让我换一种方法,让我将第二个数组插入第一个数组)
反问:
1. 技术栈:都有,目前在推react
2. 评价:基础掌握的可以,但是写算法有些粗心(第二个题中粗心把==写成了=,导致输出有问题),速度也要加快
2021.8.31 17:00 北森云计算一面(50min)
1.自我介绍
2.项目介绍(对自己提升最大的项目是哪个,有哪方面的提升等)
3.react的一些问题(setState的原理(不会),同步异步?,react生命周期,高阶组件(不会),组件的封装,虚拟DOM,diff算法,hooks,redux)
4.CSS盒模型
5.垂直居中
6.flex布局(要求想起来的都说)
7.缓存的一些属性(要求想起来的都说)
8.GET和POST区别
9.浏览器从输入url到最后的过程
10.渲染的原理(不会)
11.为什么主要把css,js写在头部,很少写在body里
12.XSS
13.原型链和原型
14.BFC(说了overflow:hidden)
15.event loop
16.antd的组件引用原则,多个组件怎么选择合适组件(不会)
17.项目打包的大小大概多少(不清楚)
18.用js实现new
19.代码题:给一个整数数组和目标值,返回数组中元素两两相加得到目标值的元素序号
面试官评价:js和css掌握的还可以,但是react的基础不好
自我评价:对react的理解仅浮于表层,忽视了react底层的重要性,需要补充这方面的知识
2021.9.2 16:00字节一面(捞简历)(60min)
部门:文案国际化
1. 自我介绍
2. 项目介绍(简介,难点(说了跨域,懒加载))
3. react生命周期(又问了父子元素的render和DidMount先后顺序)
4. js数据类型(说了6+3+BigInt,基础和引用的区别,类型的判断)
5. 数组插入数据的方法(push,unshift,splice)
6. 伪数组(和数组的区别联系)
7. Map和Set结构(和数组的区别联系)
8. 如何判断对象是否有某个属性(又问了数组的遍历方法)
9. event loop(微任务嵌套微任务的话是在哪次循环执行,又给了一个代码判断输出)
10. CSS权重
11. less/sass(不会)
12. 深拷贝浅拷贝
13. 浏览器从输入URL到渲染完页面的整个过程
14. 三次握手(为什么握手三次但是挥手是四次)
15. display:none和visibility:hidden区别
16. 使用antd碰到过什么问题(说了版本不兼容的问题),有没有自己封装过基于antd的组件(没有)
17. 代码题:
(1)判断链表是否有环(没写出来)
(2)跳台阶
(3)数组扁平化
面试官点评:数据结构知识需要加强
自我评价:需要学习css预处理器,数据结构的算法题还要多刷
2021.9.11 14:00小红书一面(50min)
1.自我介绍
2.项目
3.框架相对原生js的优势
4.antd自己封装过组件或者改过吗
5.实现节流
6.event loop
7.原型链,作用
8.闭包,作用
9.TCP三次握手,为什么是三次
10.代码题:
给定二位数组,重叠区间合并,要求用两种方法写,由于写的两种方法都用到了递归,又问有没有不用递归的方法,没想出来,面试官说可以用排序,想了一下大概明白了
面试官点评:对于框架的思考需要重视,多看github开源的项目,了解一些其他框架的思路
2021.9.16 14:45京东(物流)一面(35min)
问的都是项目,详细讨论了一些项目里的问题
2021.9.23 14:45便利蜂一面 (30min)
1. 自我介绍
2. 最近学过哪些技术,不要回答为了面试而学习的(答了看react文档)
3. 看了文档的学到的新东西(setState更新原理,高阶组件)
4. setState更新的短时间和批量什么意思,批量更新是合并还是一个一个单独更新
5. 高阶函数
6. 手撕防抖
7. 面试官共享之前笔试的代码题,让说思路,问有没有更好地解决办法
2021.9.23 16:30 科大讯飞一面 (40min)
1. 自我介绍
2. 介绍项目(碰到什么难题,怎么解决的)
3. git(拉,推代码的过程,切换分支方法)
4. js类型
5. 防抖节流(概念,使用)
6. 事件循环机制
7. 外边距塌陷,清除浮动
8. BFC
9. CSS盒模型
10. flex布局
11. 重绘重排
12. 深拷贝浅拷贝(概念,深拷贝方法)
13. es6用过什么,介绍一下(箭头函数,let/const,promise,for of/for in,模板字面量,展开运算符)
14. 懒加载(概念,如何优化)优化不太会,问了一下,面试官给了个场景让我自己思考一下,我问可不可以用节流,可以,但是现在基本都用观察者模式。我问如果使用节流,wait该怎么设置,一般300-500ms(不能太长但也不能小于人平均反应时间的200ms)
15. history和hash
16. react生命周期
17. react和vue的区别
18. webpack
2021.9.23 18:30 同花顺一面 (30min)
1. 自我介绍
2. 项目
3. 论文到什么进展了,介绍一下论文的思想
4. http状态码
5. 协商缓存
6. 如何让标签隐藏
7. promise和generator
8. 元素水平居中
9. 懒加载
10. 节流
11. React父子组件通信方法
12. font-size有什么单位
13. webpack
2021.9.24 16:00 科大讯飞二面(50min)
1. 自我介绍
2. 项目相关聊天(项目流程,项目中的某部分怎么实现的,前后端交互方法,代码管理工具,前后端怎么沟通,项目过程中自身有什么进步。项目这一块时间用的很长)
3. js类型
4. 如何解释面向对象编程和面向接口编程
5. 设计模式
6. 优化方法
7. 线程
8. 跨域
9. js继承
10. 对象和数组的创建方法
11. 如何优化大批量DOM中个别DOM的更新
12. 算法:根据数组中对象内部的id大小顺序对对象进行排序
13. 未来职业规划,对项目管理有什么想法
2021.9.27 13:00 同花顺二面 (30min)
1. 自我介绍
2. 项目介绍
3. 原型和原型链
4. Promise
5. 事件循环
6. 创建对象的方法
7. Object.create()和对象字面量有什么区别
8. 两栏布局
9. flex:1的含义
10. 聊天(最自豪的事,个人优缺点,为什么做前端等)
2021.9.29 15:30 海康威视一面 (30min)
1. 自我介绍
2. js数据类型,怎么判断
3. flex布局
4. 事件循环
5. Promise
6. 深拷贝浅拷贝
7. 懒加载
8. react生命周期
9. react通信方法
10. 虚拟DOM
11. Diff算法
12. redux、hooks、webpack相关问题
13. MVVM
14. 职业规划
2021.9.30 10:30 浩鲸云计算一面(30min)
主要聊得都是项目,用到的框架,项目管理工具,UI组件库等
2021.10.09 15:00 完美世界一面(30min)
主要都是问的项目问题(对于框架问的贼深,答得稀烂,太痛苦了)
2021.10.09 16:50 同花顺hr面(30min)
1. 互相介绍
2. 前两个技术面感觉如何,面试官怎么样
3. 做前端多久了,当初为什么选择做前端
4. 高考分数,为什么去青岛
5. 为什么考研,父母什么看法
6. 父母对于我的工作的看法
7. 父母的职业
8. 前端领域知道哪些大牛,看过他们的书/博客等吗
9. 平时有在看书吗,看的哪些方面的书,看完了吗
10. 本科成绩,有挂过科吗,为什么挂科
11. 平时学习有记笔记吗,共享屏幕看一下
12. 期望薪资
13. 之前有实习过吗,为什么没有实习,之后可以来实习吗
反问:
1. 新入职有没有培训课程(有,然后讲了很多)
2. 新入职有没有试用期,多久(半年,实习可以抵扣)
3. 多久能知道结果(十天左右)
2021.10.11 10:50 浩鲸云计算综合面(30min)
1. 自我介绍
2. 项目的一些聊天
3. 为什么投福州不投广州南京等地
4. 本科和研期间学习成绩
5. 说一下你认为的前端的学习路线
6. 期望薪资
反问:
1. 这一面是技术面还是hr面(都有,属于综合面,后续可能有加面,如果没有就是等结果)
2. 结果多久能知道(一周左右)
3. 新入职有没有培训课程(有,企业和部门都有)
2021.10.12 18:00 招银网络科技一面(30min)
1. 自我介绍
2. 项目介绍(说一下登录怎么实现的,从后端拿到的数据放在哪里,怎么处理的)
3. react虚拟DOM,如果没有虚拟DOM react会怎么样
4. react组件之间通信
5. 事件循环(如果没有宏任务和微任务先后顺序,执行代码会出现什么情况)
6. es6用过什么
7. promise,async,await
8. 浮动,清除浮动
9. 伪元素伪类区别(用过哪些)
10. webpack性能优化方法
11. 代码题:计算两者时间差,输入两个时间(beginTime :'19:00';endTime :'20:00||0:30')
如果时间差>2.5h,返回true
2021.10.14 16:30 建信金科综合面(30min)
一位技术一位hr
技术:
1. 挑一个项目介绍(流程,难点,怎么解决)
2. 闭包
3. 盒模型
4. 定位
5. 布局
6. 封装过组件吗,怎么做的
7. es6的方法用过哪些
8. 对象和数组的方法
9. 用过jq吗
10. UI绘制的能力如何
hr:
1. 为什么投递武汉
2. 前后端职业规划
3. base调剂是否接受
4. 能否实习
5. 是否了解建信金科
6. 有没有参加过社团活动或学生会
7. 有没有获得过证书/奖学金
2021.10.15 14:50 招银网络科技综合面(25min)
没怎么问技术,自我介绍后问了一下项目,项目中遇到问题怎么处理的,和其他项目组的同学怎么沟通的。面试官非常nice,给我讲了好多可能工作后才会明白的道理,非常感谢这位老师!
2021.10.15 16:55 金山云一面(40min)
1. 自我介绍
2. 项目介绍(流程,难点)
3. react生命周期
4. setState()同步还是异步
5. react和vue区别
6. 原型链
7. 闭包
8. Promise
9. 箭头函数和普通函数区别
10. this指向问题
11. 浏览器输入url到渲染完成过程
12. https
13. 非对称加密
14. 状态码
15. 缓存
16. 跨域解决方法
17. 前端性能优化方法
2021.10.18 14:10 用友一面(40min)
1. 自我介绍
2. 项目介绍
3. 有没有用过react native,移动端适配方法
4. react fiber
5. webpack相关问题(loader和plugin区别,js兼容性处理)
6. 看代码说输出(原型链,event loop)
7. es6用过哪些
8. promise的api,allSettled,all,race是什么意思
9. const相关问题(下标形式能不能赋值,push呢,直接arr =可以吗)
10. 箭头函数特点
11. call,bind区别
12. 代码题:给定一个英文字母组成的字符串,判断哪个字母最大,并在最大的字母后添加字符串’(max)’
反问:
1. 前端学习建议:对症下药,深入问题本源,搞清楚根本的知识点,碰到难以理解的问题可以上论坛提问
2. 应届生应更注重知识的广度还是深度:如果对某一方面投入过多的精力,这一领域可能并不适合自己,因此还是要以广度为主,工作时间长了以后再进行挖掘
3. 部门业务:提供移动端框架技术支持
2021.10.19 15:00 富途一面(40min)
1. 自我介绍
2. 项目介绍
3. js判断类型的方法
4. 事件循环
5. Promise,async,await
6. 箭头函数
7. new做了什么
8. http状态码
9. 缓存
10. https,http2.0
11. BFC
12. 用CSS绘制三角形
13. react路由
14. 高阶组件
2021.10.20 14:10 招银网络科技hr面(35min)
(给了口头offer)
1. 自我介绍
2. 本科学过什么课程
3. 本科成绩
4. 如何处理压力
5. 有什么特长
6. 为什么投递杭州
7. 前后端对接口bug意见冲突怎么办
8. 前端工作完成了,但是对接的后端没有在规定时间完成接口编写,怎么处理(hr给的最佳方案:提前一周开始就做提醒,deadline前三天再提醒一次)
9. 面对甲方时,有没有发生过什么很无奈的事
10. 做的项目对自己提升最大的是哪个,难点有什么
然后hr介绍了公司基本情况、业务、和福利,培训制度
反问:
1. 大概多久知道结果:一周到两周
本来没啥要问的了,结果hr奇怪的问我:就一个问题?就又问了点评,拿到了口头offer