小米前端一面
总体时间大概半个小时,自我介绍完八股连问,然后看了几个代码题,感觉是kpi。
1、JS里面Map和Object的区别;
2、实现水平垂直居中的方法(追问flex是设置在哪个元素上的;使用绝对定位怎么具体操作);
3、介绍一下盒模型(给了一道CSS代码,设置了width、padding啥的,说一下元素实际占用的宽度;怪异盒模型下的宽度是什么);
4、说一下this;给了两道this指向相关的代码,说一下输出结果;(这个没答好,理解还是有不足);
5、说一下闭包,给了一道闭包相关的代码,说一下输出;
6、写一个sleep函数,实现需求如下(返回一个promise,promise里设置定时器);
async function test(){ await sleep(1000); console.log("hello"); await sleep(1000); console.log("world"); }
7、手写bind(没考虑到柯里化,被提醒后加上了);
8、写一个树形结构的节点遍历输出(DFS),它的输出是从子节点向根节点反着输出,因此输出函数要放在递归调用之后;
反问:小米的技术栈和业务范围,回答是主要手机端安卓开发,前端比较少。
后面就没继续问了。