小米前端实习面经

一面(1h

面试官是一个小姐姐,真是人美心善,帮我把题目都写下来了,都不用去听录音总结了😁,直接CV大法😎

  1. 基本数据类型 引用数据类型 区别

    存在堆,值在堆里,地址存在栈里

  2. 判断是一个数组

    typeof可以吗?

    typeof arr

    判断null 是object

  3. instanceof原理

    原型链 是否是实例

    实现一个instanceof

  4. 原型链的终点

  5. 作用域链

    执行上下文

    定义a函数的方式

    调用a函数的方式

  6. this指向

    全局指向window

    对象的方法调用

    call apply bind 区别

    bind返回一个函数 柯里化

    会立即执行吗?

  7. settimeout 会立即执行吗

    settimeout(()=>{},0)

    宏任务

    微任务

  8. promise

    异步 三种状态

    pending resolve reject

  9.  //执行顺序
       async function async1() {
               console.log('async1 start')
               await async2();
               console.log('async1 end')
           }
           async function async2() {
               console.log('async2')
           }
           console.log('script start')
           setTimeout(function () {
               console.log('setTimeout')
           }, 0)
           async1();
           new Promise(
               function (resolve) {
                   console.log('promise1')
                   resolve();
               })
               .then(
                   function () {
                       console.log('promise2')
                   })
                   
    
           console.log('script end')
  10. 闭包

    访问自由变量

    优点缺点

  11. 深拷贝

    浅拷贝复制一层

    深拷贝 对象递归进行拷贝

  12. let var const

    块级作用域

    var 有变量提升

    const a =[]

    a.b='222'

    地址不会变

  13. 箭头函数

    arguments

    rest ...

  14. slice转换成数组

    concat 不会

    slice

    splice

    sort 会吗

  15. css隐藏

    display:none 不渲染

    opacity:0 透明

  16. BFC

    根元素是BFC

    position absolute

    dispaly :flex

  17. flex布局

    属性

  18. position

  19. px

    rem em

  20. http和https的区别

    多的s (ssl

  21. get和post的区别

  22. tcp和udp的区别

  23. 状态码

    301 302 304 203 200

  24. 跨域

  25. 为什么选前端

  26. 工作室相关的信息

反问:

  1. 建议:基础还行,公司用的react,建议学下react

  2. 之后有几面(二面或者三面

  3. 业务:米+APP 控制色相头

#小米招聘##面试题目##小米##实习##前端#
全部评论
楼主约二面了
1 回复 分享
发布于 2021-11-22 18:33
好基础,遇见这样的面试官就高兴了
点赞 回复 分享
发布于 2022-07-01 15:00
感谢分享
点赞 回复 分享
发布于 2021-11-22 16:39
base武汉吗
点赞 回复 分享
发布于 2021-11-22 15:30

相关推荐

06-24 22:55
已编辑
长江大学 前端工程师
- - 公司用vue31.css语法及其新特性2.项目中有用哪些css选择器?3.css选择器优先级4.css中实现渐变背景有哪个属性,怎么写?5.css动画,animation和transition的区别?6.自定义上下不定跳动的动画怎么实现?7.css鼠标悬停提示,怎么实现?8.用过less或sass吗9.怎么在项目中引用并使用less的?10.less里面定义了变量如何在css里使用?11.用过less里面的函数吗12.es6语法有哪些新特性?13.var let const区别?14.怎么通过原型链方法判断变量是不是一个数组?15.typeof和instanceof区别?16.什么是作用域?(答错了,答成作用域链了)17.箭头函数和普通函数的区别?18.数据解构用在哪些方面?19.数据解构的优点和缺点?20.js异步方案有几种?21.在promise.reject().then()里面再返回一个promise,结果可以从哪里获取到?22.项目中用了哪些vue的方法或API?23.vue3不用setup()怎么去写组件?24.父组件有钩子函数,子组件也有钩子函数,它们执行顺序是怎样的?25.vue3里,若父组件里面有异步组件,它们的生命周期函数执行顺序是怎样的?26.computed和watch的区别?27.vue3组件之间的数据传递怎么实现?(组件通信)28.用到了pinia哪些方法或语法糖?29.pinia中定义action,怎么在组件中使用action?30.路由配置在后端时,怎么动态加载到页面上?31.vue-router哪个方法 动态追加到路由上?32.路由传参有几种方式?33.封装过哪些组件?34.做过哪些Webpack打包优化,配置,插件?35.还了解过哪些打包工具?36.git用ui界面还是命令?37.git常用命令?38.git fetch和pull区别?39.本地新建一个分支,推送到远程仓库,用什么命令?40.用过哪些node.js相关的东西?41.了解过node.js框架?
点赞 评论 收藏
分享
1. display: none 和 visibility: hidden 的区别• 渲染层面:◦ display: none:元素完全从渲染树移除,不占据空间(回流+重绘)。◦ visibility: hidden:元素仍在渲染树中,占据空间但不可见(仅重绘)。• 子元素影响:◦ display: none:子元素也会被隐藏。◦ visibility: hidden:子元素可通过 visibility: visible 单独显示。2. 三列布局(两边固定,中间自适应)方案1:Flex 布局.container { display: flex; }.left, .right { width: 200px; }.center { flex: 1; }方案2:Calc 计算.center { width: calc(100% - 400px); margin: 0 200px; }方案3:绝对定位 + margin.container { position: relative; }.left, .right { position: absolute; width: 200px; }.center { margin: 0 200px; }3. 闭包• 定义:函数内部引用外部作用域变量,且变量在外部作用域释放后仍被保留。• 作用:实现私有变量、函数防抖/节流等。• 注意:过度使用可能导致内存泄漏。4. React 状态管理方案及区别方案 特点** useState** 组件级状态,适合简单逻辑。** useContext** 跨组件状态,适合全局轻量级状态(避免逐层传递 props)。** Zustand** 轻量级全局状态管理,基于 Context + immer,支持订阅和模块化。** Redux** 复杂全局状态管理,需手动配置 reducer、action 等,适合大型应用。5. 虚拟列表实现• 核心原理:仅渲染可见区域内的列表项,通过滚动事件动态计算并更新显示内容。• 关键步骤:1. 计算可见区域起始索引和结束索引。2. 渲染对应索引的列表项。3. 通过 transform 或 padding 模拟滚动位置,保持滚动条正常显示。6. React 性能优化• 组件优化:◦ 使用 React.memo 缓存函数组件,避免无必要重渲染。◦ useCallback 缓存回调函数,避免子组件因引用变化重渲染。• 状态优化:◦ 避免在 useState 中存储不必要的状态(如临时计算值)。◦ 使用 useReducer 处理复杂状态逻辑,减少重复更新。• 其他:◦ 虚拟列表/表格(长列表优化)。◦ 懒加载(React.lazy + Suspense)。◦ 避免内联函数在渲染中重复创建。7. React 的状态(补充常见问题)• 状态更新异步性:◦ 合成事件和生命周期中,setState 异步更新,需通过回调获取最新值。◦ 原生事件(如 setTimeout)中,setState 同步更新。• 状态穿透问题:◦ 多层组件传递状态时,可用 useContext 或状态管理库简化。8. 代码题:生成有效括号组合(回溯法)var generateParenthesis = (n) => {const res = [];const backtrack = (path, left, right) => {if (path.length === 2 * n) res.push(path);if (left < n) backtrack(path + '(', left + 1, right);if (right < left) backtrack(path + ')', left, right + 1);};backtrack('', 0, 0);return res;};思路:通过回溯法枚举所有可能,用 left 和 right 控制左右括号数量,确保任意时刻 right ≤ left 且总数不超过 n。
点赞 评论 收藏
分享
评论
6
57
分享

创作者周榜

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