小米武汉前端面试题
题库
- ready 与 DOMContentLoaded
- React 技术栈:Electron/React Native
- 隐藏与显示:hidden/display/opacity
- 箭头函数 vs 普通函数
- call/bind 手写与调用链
say.call.call - Less 常用函数
- 双链表实现、二叉树/队列/栈与遍历
- CSS 权重/层级、浮动文字环绕、圣杯/双飞燕布局、flex 布局、外边距折叠
- requestAnimationFrame 动画优势
- 浏览器存储与 HTTP 缓存
- 排序:选择/插入/快排;二叉排序、删除二叉树节点
- JS 基础:原始类型、闭包、原型、事件循环
- 网络:TCP、HTTP/2、跨域、缓存机制
- 安全:XSS、CSRF
- ES6 语言特性
- 设计模式、Base64 使用
- 异步:defer/async 区别
- Node.js:高并发注意点、多线程、性能优化、路由分发
- 大规模 DOM 操作优化;1万条 li 插入优化
- 原生 DOM 增删改查
- 爬虫抓取机制、千分位实现、手写 Promise
- 构建:Webpack 插件、Rollup
- Axios、请求出错中断其他请求
- Vue:methods/watch/computed 区别、双向绑定、状态管理、Diff 算法、find
- 详细说下 视口概念
- webpack 生产和开发环境配置区别
- 找出一个字符串中重复次数最多的字母
- 实现对象的深克隆
- 将嵌套数组转化成单层数组(我用的递归,面试官提示js的类型转换,加了一个方法转化成string再split)
- 如何获取页面上所有标签并打印其个数。(我问了怎么获取所有标签,告诉我querySelector('*'),让我尝试用数组的reduce方法,我说不太熟悉语法,最后用foreach实现了)
资料来源:掘金-小米面试题整理