小米前端实习一二面

小米一面:

  1. 聊学习经历,聊一下项目(没深入,就是热个身吧)
  2. 上来就是三道代码题,这个没办法记不住,忘了copy下来了,涉及到的知识点:
  • 闭包
  • 作用域
  • 宏任务、微任务
  • 变量声明提升
  • 事件循环
    // 第一题
    function sayHi() {
      console.log(name); // undefined
      console.log(age); // ReferenceError: Cannot access 'age' before initialization
      var name = 'Lyric';
      let age = 19;
    }
    sayHi();
// 第二题,这个我傻了,第一个for循环明明是 3 3 3,我非要说 2 2 2,我是傻子,少加了一次
for (var i = 0; i < 3; i++) {
  setTimeout(() => {
    console.log(i); // 3 3 3
  }, 1)
}
for (let i = 0; i < 3; i++) {
  setTimeout(() => {
    console.log(i); // 0 1 2
  }, 1)

// 第三题的一部分,还有一个 Promise 的题,太长了我忘了,复现不出来,反正很简单,事件循环会就可以
// 这个没答对,我以为是 [ 1, 2, 3 ],但是面试官让我下来再搜一搜资料
console.log(['1', '2', '3'].map(parseInt)); // [ 1, NaN, NaN ]
  1. 讲了讲有哪些宏任务和微任务,以及它们的循环方式,之后思考对于宏任务和微任务队列的实现方式(给了几个思路,1. 二维数组 2. 哈希散列 3. 数组链表)
  2. 垂直水平居中方式(4种 + 了解的两种,后面两种没说实现思路,只说了有这么个方式 grid 和table)要求手写,但是牛客网面试房间 HTML 标签也不能直接 tab 键补全,导致我写的很慢,面试官就说直接讲思路就好了
  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 低代码平台等等,我听的云里雾里,但也是个方向了,毕竟我一窍不通
  13. 感受:小米面试官特别随和,会引导你把一个东西说出来,会给你足够的思考时间,感觉就像是在平等交流一样,而不是以面试者和面试官的位置去交谈,很容易就会放松下来。最后,面试官长得也特别帅!!!

小米二面:

  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种)
  9. 本来面一个小时,最后大概面了30分钟,直接过了,可能是我讲的很细(至少对于实习生面试有点吧),面试官也说我基础特别扎实(心虚emoji),其实我很菜
  10. 反问环节:先是询问有没有三面,然后询问部门情况,最后是问了对于我发展的建议
    总体来说,面试体验很好就这样...
#小米实习##前端工程师##面经##小米##实习#
全部评论
实习这么难啊 这莫多手写
7 回复 分享
发布于 2022-03-05 14:35
这难度应该直接秋招了吧😂
2 回复 分享
发布于 2022-03-07 20:54
加个联系方式可以吗,我想问点事
2 回复 分享
发布于 2022-03-05 23:02
请问是暑期吗?
2 回复 分享
发布于 2022-03-05 16:52
大佬楼主 可以加个微信学习吗 lambda-hd 非常感谢
1 回复 分享
发布于 2022-03-18 00:22
礼貌问问楼主在哪学的或者说怎么找的前端知识啊,太强了啊%%😭
1 回复 分享
发布于 2022-03-09 11:41
实习的难度就这样的吗?那么正式职位不是难上天了?
1 回复 分享
发布于 2022-03-09 10:35
楼主 一面判断数组typeof判断不了
1 回复 分享
发布于 2022-03-06 21:43
都能详细答出来的话确实扎实
1 回复 分享
发布于 2022-03-06 10:15
感觉有点难啊。是23届暑期实习吗?
1 回复 分享
发布于 2022-03-05 14:37
看得出来楼主基础很扎实,如果每个问题都答这么全的话,respect。
8 回复 分享
发布于 2022-03-05 15:03
看完直接跪了,我的能力不足你的十分之一,看来找工作无望了
7 回复 分享
发布于 2022-03-05 15:18
m
点赞 回复 分享
发布于 2022-09-18 00:51 湖北
没有算法题目吗?
点赞 回复 分享
发布于 2022-06-01 16:25
兄弟,问下,面试官没问算法题吗?
点赞 回复 分享
发布于 2022-04-08 15:36
小米日常实习拿到offer是要马上去还是可以等到暑假再去呢,求大佬解答
点赞 回复 分享
发布于 2022-04-02 08:38
笔试刷了多少算法题呀
点赞 回复 分享
发布于 2022-03-27 23:22
燕大校友!
点赞 回复 分享
发布于 2022-03-27 00:00
居然都没有算法题吗
点赞 回复 分享
发布于 2022-03-26 02:40
楼主,从投递到一面多长时间啊,我昨天投的
点赞 回复 分享
发布于 2022-03-20 15:21

相关推荐

#&nbsp;面经&nbsp;##&nbsp;一、项目背景(这里感觉想问一下一个系统设计和服务拆分有没有思考)1.&nbsp;这个项目是练手项目吗?有没有上线?2.&nbsp;项目现在进度到什么阶段?3.&nbsp;这个项目是你自己做的还是团队合作?4.&nbsp;整个系统一共有多少个服务?分别是什么?5.&nbsp;你在项目中主要负责哪一部分服务?6.&nbsp;你能整体介绍一下你负责的服务设计吗?7.&nbsp;为什么要做这个项目?项目背景是什么?---#&nbsp;二、系统架构设计8.&nbsp;整个系统的服务划分是怎样的?9.&nbsp;系统中有哪些模块?10.&nbsp;每个服务的职责分别是什么?11.&nbsp;系统中一共有多少个接口?主要有哪些接口?12.&nbsp;节目服务主要提供哪些&nbsp;API?---#&nbsp;三、下单链路设计(这里问了一个缓存一致性有没有设计对账来保证)13.&nbsp;抢票系统的下单流程是怎样的?14.&nbsp;为什么要使用&nbsp;Redis&nbsp;+&nbsp;Lua&nbsp;扣库存?15.&nbsp;为什么要使用&nbsp;Kafka&nbsp;异步创建订单?16.&nbsp;Redis&nbsp;扣库存之后为什么不直接创建订单?17.&nbsp;如果用户下单后立刻查询订单列表,查不到怎么办?18.&nbsp;为什么使用前端轮询订单状态?19.&nbsp;为什么不由后端触发补偿机制,而要依赖前端?(这里是表达有误)20.&nbsp;如果订单长时间没有创建成功怎么办?---#&nbsp;四、缓存设计21.&nbsp;你提到使用了三级缓存,三级缓存分别是什么?22.&nbsp;三级缓存中每一层缓存的数据是一样的吗?23.&nbsp;本地缓存和&nbsp;Redis&nbsp;缓存之间如何保证一致性?24.&nbsp;Redis&nbsp;缓存如何保证一致性?25.&nbsp;如果缓存删除失败怎么办?26.&nbsp;有没有设计缓存对账机制?27.&nbsp;Redis&nbsp;缓存什么时候更新?28.&nbsp;Redis&nbsp;缓存什么时候失效?29.&nbsp;缓存&nbsp;TTL&nbsp;是如何设计的?---#&nbsp;五、幂等组件30.&nbsp;为什么要设计幂等组件?31.&nbsp;幂等组件解决了什么问题?32.&nbsp;幂等组件是如何实现的?33.&nbsp;幂等组件中锁的&nbsp;key&nbsp;是如何设计的?34.&nbsp;如果网络失败或者请求异常,幂等如何保证?---#&nbsp;六、ES&nbsp;搜索35.&nbsp;ES&nbsp;中存储的是什么数据?36.&nbsp;ES&nbsp;中大概有多少条数据?37.&nbsp;ES&nbsp;的索引是如何设计的?38.&nbsp;ES&nbsp;常见的性能优化手段有哪些?---#&nbsp;七、Kafka39.&nbsp;Kafka&nbsp;除了&nbsp;Producer、Consumer、Broker&nbsp;还有什么核心组件?40.&nbsp;Kafka&nbsp;的元数据是如何管理的?41.&nbsp;Kafka&nbsp;的&nbsp;Partition&nbsp;有什么作用?42.&nbsp;Kafka&nbsp;如何保证消息顺序?43.&nbsp;Kafka&nbsp;如何提升吞吐量?---#&nbsp;八、Redis44.&nbsp;Redis&nbsp;常见的异常场景有哪些?45.&nbsp;什么是缓存穿透?如何解决?46.&nbsp;什么是缓存击穿?如何解决?47.&nbsp;什么是缓存雪崩?如何解决?48.&nbsp;Redis&nbsp;跳表是什么?49.&nbsp;Redis&nbsp;跳表主要应用在哪个数据结构?---#&nbsp;九、Redis&nbsp;实战50.&nbsp;如果要做一个排行榜系统,你会如何设计?---#&nbsp;十、MySQL51.&nbsp;MySQL&nbsp;中有哪些锁?52.&nbsp;MySQL&nbsp;的行锁、表锁、意向锁分别是什么?53.&nbsp;在&nbsp;RR&nbsp;隔离级别下执行&nbsp;delete&nbsp;where&nbsp;id&nbsp;=&nbsp;10&nbsp;时会如何加锁?54.&nbsp;MySQL&nbsp;索引失效有哪些情况?55.&nbsp;not&nbsp;in&nbsp;是否会导致索引失效?---#&nbsp;十一、算法题56.&nbsp;找出序列中第一个没有出现的正整数。如何在&nbsp;O(n)&nbsp;时间复杂度、O(1)&nbsp;空间复杂度下解决该问题?---
点赞 评论 收藏
分享
评论
107
437
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务