阿里、百度、腾讯、某易、好未来、端点等面经
emmmm 害,生活太难了。。。
百度一面(凉)
- 自我介绍
- 你的创业项目
- 打包上线的过程
- 有没有参与项目设计,怎么参与的?
- 项目打包后的产出(???)
- 你上服务器了别人怎么访问你的资源(域名 dns)
- 你的首屏怎么优化的(一直挖,你为什么不改成http2呢?为什么要用mutationObserver呢?。。。。)
- 响应式原理。vue真的可以做到深层次的响应式吗(我说了deep)
- 说说webRTC。
- webRTC是点对点还是要经过服务器?
- 你实习做了什么
- 水平垂直居中
- 一张900x900的图片在canvas里面分别以400*400 和 300 *300 去生成图片,有什么差异吗? (????分辨率)
- 多行文字垂直居中。
- 项目从开发到上线的流程?
- 上线之前需要做什么
- Master的一些保护措施?
- 在上线后 测试环境发现bug了怎么办?
- 回滚版本,回滚代码?(reset revert?)
- 算法: [[1,2,3],[3,4,5],[6,7,8]] => [[1,2,3,4,5],[6,7,8]] 有交集就合并
凉了
端点一面
sp专场
- 自我介绍
- vue响应式原理
- vue3响应式原理 相对于vue2有啥提升(基于proxy特性啥的,不用变异数组了,不用单独写$set。。。啥的了, vue2不管有没有用到data都监听了 vue3用到了才返回 new Proxy(data)
- 说说vue-router的原理 (history hash abstract 然后说了前两种的 hashchange pushState啥的)
- 说一下继承的几种方式,怎么做的(经典,寄生、组合、原型、寄生组合)
- webpack loader 和 plugin的区别。
- webpack打包怎么优化 (happyPack UnglifyJsPlugin Minicss... CommonChunksPlugin CompressionWebpackPlugin terser... 取消soureseMap 什么的)
- 常用的plugin 和loader (巴拉巴拉)
- 说说nextTick的原理, 然后问 为什么要用$nextTick (异步更新嘛)
- 会react吗?(一点) hook可以在条件判断里面使用吗(不可以) 为什么(不知道)
- js怎么判断数据类型。
- instanceof原理
- 说一下Promise实现的过程(说了好多。。。)
- Promise的一些静态方法 说说作用和区别(resolve,reject,all,any,allsettled,rase)
- promise和await async 有什么区别吗? 然后我补充了在ES7之前可以使用gerneator+promise实现async 和await
- flex实现两栏布局(送分)
- 了解过 Reflect Proxy吗 (没有)
反问: - 想了解一下业务
- 技术栈更偏向于?
端点二面
忘了,过了。
某易一面(20min)
- 自我介绍
- 说说你最不熟悉的3个css属性
- 说说作用域
- 闭包的一个题(一直在扯)
- 深拷贝和浅拷贝。 浅拷贝和赋值有啥关系
- 我就是要对打包后的静态资源全部用强缓存,但又不影响迭代后的更新,我就是要做到极致。怎么去做这个缓存策略。
- react生命周期
- vue nextTick原理
- 实习做的东西
某易某火二面(50min)
1.说说你对babel的理解?
2. 如果bable转不了的呢?怎么办?
3. 你的意思是polyfill是bable提供的功能咯?
4. 说说你对package.json的理解
5. 里面的name和version有什么用呢?
6. 那这个version和线上版本回退有什么关系呢?
7. browserlist有啥用
8. package.json里面的依赖有啥用?
9. 依赖有啥不同?
10. 为什么要有版本号?
11. 所有的版本号都固定吗? (不 有些是~ ,补充了package.lock.json)
12. 那么package.lock.json有啥用
13. 我对打包后的资源就是要做到全部强缓存,但是又不耽误版本迭代后资源的更新怎么做?(说了用一个json文件记录资源的hash值。hash值变了就请求。)
14. 那么谁来处理这个json文件呢?(???)
15. 线上回滚的时候,上一个版本的代码去上线,谁帮你们做的这个操作呢? (说了指针啥的)
16. 举一些实习中你的成长
17. 把这些成长每一个举一些例子(然后各种挑我毛病,你做了什么对比吗?你这种方案为什么比这个方案好?为什放弃那个方案?)
18. 资源在服务器上是以什么形式存储的
19. 那用户怎么能访问到你的资源? 我说dns解析后拿到ip去找对应的主机。
20. 那么你主机怎么拿到资源(???我tm就不知道什么是主机)
21. 自动化打包编译你怎么让编译后的和你本地编译的一样?
22. 还有些忘了。。。。。
"我不太会这个问题"
"不会你就猜"
"行,那我觉得是***这个样子的"
"你为什么要猜这个呢?你的依据是什么呢?
我都猜了,你问我猜的依据。
66666,真的6 看着问题,我以为是webpack工程师。
好未来一面(40min)
1.自我介绍
2.创业项目承担的角***r>3.创业项目的成果、流量之类的
4.能说说不同数据结构对应的一些场景吗?
5.作用域的理解
6.闭包的理解(这个问了许久,立即执行函数是闭包吗,为什么改成let就可以了呢)7.说说tcp和udp的区别
8. tcp怎么保证可靠的
9.为什么http3.0要用udp
10.怎么实现一个v-model
11.说说nextTick原理
12.说说事件循环
13.先nextTick后修改值,nextTick取到的是修改前还是修改后的,为什么?
14.介绍一下为什么要使用mutationObserver
15.你首屏怎么优化的(巴拉巴拉)
16.实现Promise.all
17. Promise.resolve(1).then(res => {return res
}).then(res2 => {
})第一个不return也可以继续.then吗会。
好未来二面(1h)
- 自我介绍
- 你在创业项目中学到了什么
- 打印结果
function ClassA() {this.x = "hello"; ClassA. prototype.x = "world"; var a = new ClassA();a.X = "what" ; console. log(a.x);deLete a.x; console. log(a.x);delete a.x; console. log(a.x);a.x = undefinedconsole.log(a.x);
- 打印结果
function someFunction() { let a=0; return function() { return a++; } } let f1 = someFunction(); let f2 = someFunction(); console. log(f1()); console. log(f2()); let f = someFunction(); console. log(f()); console. log(f());
- 说说作用域和闭包
- 那你能说一下你实习的项目吗? (项目背景,功能点,项目结构,我做了什么,带来了什么收益)
- webSocket怎么去做消息确认呢?没有ajax的回调这种。
- 能说说你项目做了哪些优化吗?
- 能说说你项目中踩过的坑吗?
- 能说说你从这些项目经历中学到了什么?
- BFC是什么、触发条件
- BFC解决了哪些问题?
- 外边距重叠怎么解决?
- vue有没有遇到过数据改变视图没有更新的情况,为什么
- 说说tcp和udp的区别
- 为什么可靠? tcp的特性除了你说的面向链接、可靠的、字节流还有什么? ? (这个我真不知道)17.垂直水平居中
- 我问你cdn了吗?“没有", 那你说说cdn。(?????)
- cdn回源是什么?
- cdn是协商缓存还是强缓存?
- 说说负载均衡(和cname有关吧,但我不会)
- 算法
给定一个非空整数数组,除了某个元素只出现一-次以外,其余每个元素均出现偶数次。找出那个只出现了一次的元素,请编程实现之。
22.算法树的层序遍历
23.你能说说https为什么安全吗?
24.知道中间人攻击吗?
25. xss怎么去预防? (过滤、转义)
26.如果让你用js实现xss的预防,你会怎么做:(escape转义? ast? )
反问:
1.技术栈(vue)
2.业务
3.一些对我的建议
好未来hr面(30min)
过了,已意向书
腾讯一面(45min)
腾讯云一面(45min)
- 自我介绍
- 作用域
- 作用域链
- 原型链
- []的原型链 说出来
function a(){ /* 作用域a */ return function b(){ /* 作用域链 b -> ? */ } } function c(){ /* 作用域c */ const b = a(); b(); } c()
b执行的时候的作用域链async function test(){ const p = new Promise(r => setTimeout(r, 1000)) setTimeout(a, 0) await p b() } test()
执行顺序- async await 原理
- xss怎么防御(说了很多情景题,不是想象的那么简单)
- Csrf怎么防御(说了很多情景题,也难)。 别想什么samesite token referrer 啥的了
- 阻止点击(一直追问)
- 追问实习做的东西(挺多)
还有些忘了
腾讯二面(55min)
腾讯云二面(55min)
- 自我介绍
- 你的创业项目,实习项目,个人博客有哪些难点,但通过你之后学习解决了的?(都举了一个) 一直问(还有吗,还有吗,还有吗,还有吗)
- 为什么http2升级失败了呢?有没有研究过原因呢?
- 那你说说http2的一些特性。 为什么http2快呢? http2没缺点吗?
- 说说怎么做扫码登录。
- 那轮训和websocket谁更好些
- wesocket和ajax比有什么优缺点吗?(websocket没有类似ajax的回调,不知道成功与否),那你们项目中怎么去解决这个问题的呢?(ack回复,失败后切ajax补发)
- 能说说https吗,从http开始引出
- 怎么验证证书的有效性呢?
- https的握手过程? (tcp握手后到 client hello。这些自己扩展了https会更耗时一些)
- 证书交换是每次请求都交换吗?
- 让你做一个下拉刷新,你怎么做
- 那如果下拉的时候,手指没动,并且没松开的时候,我需要那个加载动画停止,你怎么做? (想了2种方案)
- url到页面渲染的流程
- dom树和render树有啥区别
- async defer的区别
- 异步加载css会阻塞页面的渲染吗?
- 说一下cookie
- 后端怎么设置cookie
- 怎么让后端无法访问cookie(我说:不携带行不行),然后就问我怎么可以不携带。追问path domain samesite
- 怎么让前端无法访问cookie
- 算法 二进制相加返回二进制
//101 + 101 = 1010 不能转10进制相加后再转2进制
- 了解过不同图片格式的区别吗(png,webp,jpg)
- 知道哪些图片的压缩算法(用更短的字符来表示更长的字符)。
腾讯三面(20min)
- 自我介绍
- 我看你做了那么多项目,挑一个你觉得有代表性的(我讲的我的博客,从0-1讲有哪些部分,哪些亮点)
- 你的项目放哪里,怎么放的。
- 说说前端性能优化的手段。(搭了很多,从包的大小,请求速度,页面性能去考虑)
- 稍等,我看看你简历….(我看你实习大半年了,做了啥)
- 感觉都是比较简单的,你觉得自己有什么提升吗?
- 能说说前端发展史吗?以及后面你觉得会朝哪个方向发展。
- 有哪些offer(喵喵喵?)
- 微信小程序、跨端了解过吗?
- 有提到微服务,讲讲?
反问: - 技术栈
- 业务
腾讯hr面(30min)
- 面试官自我介绍
- 为什么选择腾讯
- 讲讲实习的情况(基本全部就说这些了)
- 家庭情况、籍贯
09-13 过了 意向书
阿里一面(电话面 25min)
- 自我介绍
- 创业项目有什么难点吗?
- 这种并发除了乐观锁之外还有考虑其他方式吗?(其实有考虑悲观锁,但好像乐观锁简单些就用了乐观锁)
- 验证码的过期处理。
- 你们创业项目后端使用node开发的还是java哇?
- 行内元素和块级元素的区别
- display和visibility的区别
- 那么这两个在浏览器渲染的的过程中有什么区别呢?(repait,reflow。 渲染树和dom树的区别吧,比如display为none的值不会出现在render树上,会出现在dom树上)。
- 说说闭包(作用域-> 作用域链 活动对象 引用等 解释闭包)。扩展scoped里面的clouser
- 那么闭包可能存在内存泄漏,怎么快速定位内存泄漏? 提到google的performance()
- 你熟悉vue还是react(vue)
- 那么你说说vue2.x和vue3的区别(composition API,响应式原理,diff优化等)
- 详细说说响应式实现的过程(解释Dep,Watcher后,从new Vue->_init->initData->Observer-> DefineReactive(递归)-> get set notify 等)
- ES6的一些新特性(因为想说await async的原理,所以说了这个,突然想起是es7的)
- const 一个数组 可以push和pop吗?为什么?
- Promise.all和Promise.race
- 能说说promise的几个状态吗,以及这些状态之间的改变
- js里面有哪些可以改变this(默认绑定,隐式绑定,call,apply,bind,new绑定 (需要注意严格模式和绑定传入null的情况 -> window或者undefined))
- 平时怎么学习前端的(时间节点: 视频-> 文章博客-> 看书-> 自己写博客-> demo练习)
- 平时逛那些社区(掘金,github,知乎,思否,stackoverflow(说了自己英文不太行))
反问:
- 技术栈
- 业务相关(介绍得好详细。。。)
周五二面