【已收到Offer】小米前端实习面经(一、二面)

本文分享了作者在小米前端实习岗位的面试经历,包括一面和二面的主要问题,涉及闭包、作用域、宏任务微任务、Vue组件通信、响应式布局、Webpack、原型链等知识点。面试官友好,注重实际操作和理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

面试无非就是考察计算机基础 + 算法 + 语言特性 + 项目。不过呢,根据我的面试题经历,其实每个公司在面试候选人时,侧重点是不同的。

例如你面试腾讯的话,可能网络这块会问的多一些;面阿里时,可能 Java 会问的多一些;面字节时,可能算法会问的多一些。

每个公司都有自己的技术特色,那今天就给大家带来一篇小米前端实习岗位的真实面经分享。

小米一面:

  1. 聊学习经历,聊一下项目(没深入,就是热个身吧)
  2. 上来就是三道代码题,这个没办法记不住,忘了copy下来了,涉及到的知识点:
  • 闭包
  • 作用域
  • 宏任务、微任务
  • 变量声明提升
  • 事件循环

 

        1.讲了讲有哪些宏任务和微任务,以及它们的循环方式,之后思考对于宏任务和微任务队列的实现方式(给了几个思路,1. 二维数组 2. 哈希散列 3. 数组链表)

        2.垂直水平居中方式(4种 + 了解的两种,后面两种没说实现思路,只说了有这么个方式 grid 和table)要求手写

        3.Set、Map、WeakMap、WeakSet 区别(Map 和 Object 的效率问题,各自的 API,WeakMap 和 WeakSet 可迭代吗,JS 垃圾回收机制对 WeakMap 和 WeakSet 的影响)

        4.本地存储了解哪些?Cookie、localStorage、sessionStorage 区别?(Cookie 详细介绍,包括 HTTP 无状态、domain、path、secure、httpOnly、SameSite)

        5.Vue 组件间通信方式(9种,1. props父传子 2. emit 子传父 3. bus公共事件总线 4. Vuex 5. parent/children 6. Storage 7. provide/inject 8. attrs 9. ref 和 refs)

        6.Vue 中 key 的作用,为什么有高效性?(就地复用、Diff 算法)

        7.Webpack相关,Proxy 代理跨域的实现原理(本地 -> 代理服务器 -> 跨域接口),并要求用 node.js 手写出来一个简单的例子【不会!(理直气壮)】

        8.响应式布局,媒体查询 + 百分比布局 + rem,以及 rem 和 em 的区别(em 面试官说我搞错了,下去要学)

        9.单行文本省略,多行文本省略分情况实现(按行数或高度两种情况,面试官提醒注意分情况!)

        10.判断数组的方式(五种,1. typeof 2. constructor 3. instanceof 4. Object.prototype.toString.call 5. Array.isArray),然后说说 3. 4. 5. 方式的区别,顺便手写了 instanceof [ 省的讲一遍原型原型链了——从构造函数到寄生式继承 ]

        11.ES6 和 ES7 了解吗,我没先说 ES6,先讲了下 ES7 的 async 和 await,面试官就顺着这个开始问 setTimeout、Promise、async 和 await,然后实现原理 generator

        12.反问环节:
问了问对于前端的发展方向,面试官说有元宇宙、lowcode 低代码平台等等,我听的云里雾里,但也是个方向了,毕竟我一窍不通

        面试感受:小米面试官特别随和,会引导你把一个东西说出来,会给你足够的思考时间,感觉就像是在平等交流一样,而不是以面试者和面试官的位置去交谈,很容易就会放松下来。最后,面试官长得也特别帅!!!

小米二面:

        1.防抖节流,原理介绍+应用场景,手写防抖和节流

        2.介绍一下原型链,从构造函数到原型,再到原型链,盗用构造函数,原型式继承,寄生式继承,寄生式继承如何弥补了普通原型链的缺点。手写了原型式继承,以及手写寄生式继承如何连接父子构造函数。

        3.做了一道事件循环代码顺序题目,关于Promise,setTimeout等,和平时见到的不太一样,有点绕,但是应该也不算难

        4.问了 Vue 响应式原理,先手写了观察者模式(网上说是发布订阅模式,我觉得还是有区别的,发布订阅模式是 Vue 的 emit和 $on 的实现原理),之后讲 Vue 如何递归去把数据添加到响应式系统 【Object.defineProperty】,然后讲 Dep 和 Watcher 类,Vue 在 Compile 阶段如何识别 data 数据,实例化 Watcher 的过程【Dep.target】

        5.问了问了不了解 computed 源码,不懂,面试官耐心的给我讲了讲

        6.HTTPS 和 HTTP 区别,就是讲公开密钥加密还有共享密钥加密,权威机构认证证书那些东西

        7.浏览器缓存机制,强缓存、协商缓存等,还有个启发式缓存机制

        8.Vue 组件通信方式(9种)

        感受:本来面一个小时,最后大概面了30分钟,直接过了,可能是我讲的很细(至少对于实习生面试有点吧)

        以上就是小米前端实习岗位的一二面全部了。

        现在春招已经开启,很多同学还不知道该如何准备,解决就业难,进大厂难的优快云超级实习生计划2022年内推正式开启!大厂、名企实习直通车,年薪最高可达30万,先到先得!即日起可填表预约测评及内推啦!

想知道你的Java/Python/前端实操能力如何?

点击链接开始测评>>>优快云·超级实习生测评名单收集超级实习生计划,名企实习保offer,进名企更简单!https://jinshuju.net/f/sUsAAV

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值