【校招VIP】小米南京互联网业务部前端23校招一面面经

01月12日 收藏 0 评论 0 前端开发

【校招VIP】小米南京互联网业务部前端23校招一面面经

文章声明:转载来源:https://www.nowcoder.com/discuss/441618441984892928

自我介绍

在你过往实习的项目中你遇到过哪些问题, 如何解决的

CSSposition属性有哪些值, 列举出来其各自的作用

static, relative, fixed, absoluate, sticky

口述https原理

CSS 手写一个两栏布局

CSS 将页面元素隐藏的方式有哪些

浏览器缓存原理

手撕代码:

function mySetTimeout(func) {
// 实现该函数, 需要考虑用多种方式解决
}

// 使执行下述代码的输出结果为"1234"
console.log(1);
setTimeout(() => {
console.log(4);
});
mySetTimeout(() => {
console.log(3);
});
console.log(2);

参考答案:

// 方法一: 直接用 Promise
function mySetTimeout(func, ...args) {
const _this = this;
return Promise.resolve().then(() => {
func.call(_this, ...args);
});
}

// 方法二: 利用 async await
async function mySetTimeout(func, ...args) {
await Promise.resolve();
func.call(this, ...args);
}

手撕代码: 用TypeScript实现防抖/节流, 要求用 ts 的泛型机制控制防抖与节流函数的参数与返回值类型相同 

参考答案:

function throttle<T extends (...args: any[]) => any>(fn: T, delay?: number): T {
let flag = true;
const _this = this;

return ((...args) => {
if (!flag) {
return;
}
flag = false;
setTimeout(() => {
fn.apply(_this, args);
flag = true;
}, delay ?? 0);
}) as T;
}

手撕代码: 给定一个乱序数组, 假设该数组中有一个元素的出现次数超过了数组长度的一半, 需找到这个元素, 要求空间复杂度为O(1)

手撕代码: 给定一个只包含 6 种括号字符的字符串, 检查其括号是否能够匹配

反问环节:

部门原来在北京, 22 年开始大规模迁移到南京

业务线涵盖 B/C 端, 主要包括游戏业务(C端), 面向商城的运营(B端)

面试官自己评价说"本人涉及的工作内容没有什么技术难度"

"预计你来这里以后, 业务压力会比较大"

"去年做了好些同质化的业务", "技术在南京但产品团队在北京, 因此沟通上会有一些额外的压力"

面试官提到这边的价值观: 与其质疑产品提出的需求的价值, 不如考虑自己如何提升和扩宽业务的价值

"这边的产品没有你想象当中那样专业, 因此需要技术去帮产品考虑业务赋能问题, 需要你主动提出一种模型然后和产品去介绍沟通"

C 0条回复 评论

帖子还没人回复快来抢沙发