小米前端实习一二面

小米一面:

  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-05 16:52
秋招专场
校招火热招聘中
官网直投
加个联系方式可以吗,我想问点事
2
送花
回复
分享
发布于 2022-03-05 23:02
这难度应该直接秋招了吧😂
2
送花
回复
分享
发布于 2022-03-07 20:54
感觉有点难啊。是23届暑期实习吗?
1
送花
回复
分享
发布于 2022-03-05 14:37
都能详细答出来的话确实扎实
1
送花
回复
分享
发布于 2022-03-06 10:15
楼主 一面判断数组typeof判断不了
1
送花
回复
分享
发布于 2022-03-06 21:43
同学有兴趣加入我们阿里云边缘云团队吗?🤗团队目前在前后端都急缺人才,校招/社招/实习均可~😘 技术栈:后端 Java/Go/C++/大数据; 前端 React/Vue 均可; 团队工作氛围良好,支持965wlb~ 实习生转正率非常高。
1
送花
回复
分享
发布于 2022-03-08 14:24
实习的难度就这样的吗?那么正式职位不是难上天了?
1
送花
回复
分享
发布于 2022-03-09 10:35
礼貌问问楼主在哪学的或者说怎么找的前端知识啊,太强了啊%%😭
1
送花
回复
分享
发布于 2022-03-09 11:41
大佬楼主 可以加个微信学习吗 lambda-hd 非常感谢
1
送花
回复
分享
发布于 2022-03-18 00:22
看得出来楼主基础很扎实,如果每个问题都答这么全的话,respect。
8
送花
回复
分享
发布于 2022-03-05 15:03
看完直接跪了,我的能力不足你的十分之一,看来找工作无望了
7
送花
回复
分享
发布于 2022-03-05 15:18
请问大家,前端面试要撕的代码怎么不是LeetCode里面那样的😥
点赞
送花
回复
分享
发布于 2022-03-05 16:17
好厉害哇!
点赞
送花
回复
分享
发布于 2022-03-05 17:36
可以面大厂了 强
点赞
送花
回复
分享
发布于 2022-03-05 17:51
哪个部门啊,佬
点赞
送花
回复
分享
发布于 2022-03-05 19:34
一面上来三道代码题  是看代码 输出结果的那种题吗
点赞
送花
回复
分享
发布于 2022-03-05 19:43
武汉还是北京小米啊
点赞
送花
回复
分享
发布于 2022-03-05 19:46
【暑期实习】前端开发工程师-抖音/抖音火山版/直播/影像/智能创作 字节跳动校招内推码: EXWS7FT 投递链接: https://jobs.toutiao.com/s/NJREQK1 【校招正式】前端开发工程师-抖音/抖音火山版/直播/影像/智能创作 字节跳动校招内推码: EXWS7FT 投递链接: https://jobs.toutiao.com/s/NJRVvmt #字节跳动# #字节跳动内推# #深圳# 机会多多,欢迎大家😃
点赞
送花
回复
分享
发布于 2022-03-05 20:52

相关推荐

一面问的八股都很基础,最常规的数据类型数组方法vue全家桶promise跨域问题那些,就先不整理了。二面被佬狠狠爆杀,深刻地感受到了自己对js的了解有多么浅薄。不能说问的有多难,但确实是平时准备的死角…被精准踩中了🙂‍↔️-1.js有很多版本,你可以说说这个过程更新了什么吗&nbsp;(这问题有点宽泛,说了一堆2.es6新特性3.es6新引入的对象类型4.说说symbol值5.let和const的区别6.promise7.async用generator怎么实现?&nbsp;(直接懵了,es6只看了阮一峰的文档,不记得里面写没写这个。只知道async是语法糖,具体怎么包装的还得再了解一下。8.深拷贝一个数组对象需要注意哪些点?(扯了一堆循环拷贝,结果没踩到面试官心巴上。9.这个过程中可以怎么遍历对象属性 (for&nbsp;of,但是for&nbsp;of不能遍历不可迭代的普通对象。又没踩到心巴上10.对象里的不是每个属性都能被遍历到吧,有很多不可读的属性。怎么遍历到这些属性(说了使用object.key,又没踩到面试官心巴上。面试官把话题向iterator引导11.iterator返回值具体是什么&nbsp;(忘了,凉了12.说说css。你用css写过最复杂的布局是什么(三栏圣杯算吗13.css动画用过吗 (憋了几句transition相关的14.可以作为动画的图片格式了解吗 (先说了个gif,然后不确定canvas和svg算不算,面试官说这俩不算图片格式-然后是一些聊天。反问环节向面试官寻求建议,面试官说虽然现在都用框架,但很多边界情况如果不懂原生会很难处理,在公司里业务会更复杂。而且js的这些底层的东西还是很有趣的,看着他最初作为脚本语言的诞生而产生的特性,然后一步步变化到现在的样子,这个过程很值得研究。-学无止境啊……
点赞 评论 收藏
转发
107 434 评论
分享
牛客网
牛客企业服务