映客前端面经
一面(4.24):
- 自我介绍
- ES6新特性(说了很多,然后问了Promise、Set、Map)
- 了解哪些设计模式(结合数据双向绑定原理说了发布订阅者模式)
- 刚刚你是结合数据双向绑定,抛开这个,就单独说说发布订阅者模式的原理
- 组件通信方式
- eventbus原理
- vuex中在哪儿提交数据更新操作?action又是干嘛的?
- vue的生命周期有哪些
- 父组件子组件生命周期钩子函数执行顺序(加载渲染过程、子组件更新过程、父组件更新过程、销毁过程)
- 知道哪些排序,最熟悉哪个?那说下快排原理,快排在哪儿结束递归?说下归并?
- 算法:n的阶乘
- 浏览器存储方式有哪些(Cookie、LocalStorage、SessionStorage)
- 移动端适配有哪些方案
- BFC
- div居中问题
- 布局方式有哪些
- 输入URL到页面显示
- TCP为什么是三次握手建立连接
- TCP四次握手由谁发起(我答客户端,面试官说是服务端?应该是C、S都可以的意思吧)
- 地址引用输出题
- 看你写了了解webpack,说一下吧
- 跨域方法有哪些?vue中怎么实现跨域的?
- 原生Ajax有写过吗
- 反问
二面(4.26):
自我介绍
同源策略、跨域
BFC
下面这道题的输出结果是什么?为什么?怎么改成顺序打印 1,2,3,4,5,还有其他方法吗?
for (var i = 1; i < 6; i++) { setTimeout(() => { console.log(i); }) }
这里我回答了最简单的方法,将 var 改成 let 即可,然后就被追问了还有吗?其实方法挺多的,我当时还想到匿名传参,但忘了咋写,建议大家不要学我看问题只从一个角度看就完了,最好多想几种办法,有备无患,还能让面试官觉得你这个人爱思考,加分,还有就是平时要多加练习。
webpack 是什么或者说你对 webpack 的理解
一道关于闭包的输出题
现在有一串字符,只由“数字和字母”组成,找出其中重复的字符(注意这里的字符串要求,如果用 map 存储遇到过的字符,那么 map 的 size 的最大值 m 就是固定的,计算时间复杂度的时候就为 m * n,而不是 n 的平方)
Linux 命令了解吗?vm 呢?
nginx 了解吗?
Git 操作熟吗?我说熟悉,面试官:好的,下一个问题。我:。。。。。
问简历上的项目(项目总结从几个点总结:项目描述、规模(个人项目还是团队项目)、你做了什么解决了哪些问题、项目中的技术难点,其实后面两个问题差不多),因为我当时面的时候没好好总结项目,结果被问了个满头包
反问(聊到说我面试答得有好有坏,问我能不能过去先实习两周,看情况给我发 offer,我说 6月可以过来,他说太晚了没 hc 了,那好吧。然后之后就没消息了,问 hr 小姐姐说待定,叫我可以先看看其他机会,这就是凉了嘛。。。)