笔试部分:
阿里伯乐系统 60min
第一题、根据表达式计算字母数量
描述:输入一串字符串,根据字符串求出每个字母的数量并返回结果对象。(数字为1时可省略)
示例一:输入:A3B2,输出:{“A”: 3, “B”: 2}
示例二:输入:A(A(A2B)2)3C2,输出:{“A”: 16, “B”: 6, “C”: 2}
第二题、手写节流
描述:参数一:执行的函数,参数二:时间间隔。要求实现即使函数被连续处罚多次也只在连续时间内执行一次。
第三题、对象扁平化
输入:
{
a: ‘a’,
b: [1, { c: true }, [3]],
d: { e: undefined, f: 3 },
g: null,
}
输入用例记不太清了,应该大致差不多吧
输出:
{
a: “a”,
b[0]: 1,
b[1].c: true,
b[2][0]: 3,
d.f: 3
// null和undefined直接舍去
}
面试部分:
1、自我介绍
2、有没有看过React的源码?
3、为什么在JSX里循环生成DOM需要添加key
4、class组件和使用hooks的组件有什么区别
5、有没有用过iframe?
6、有做过h5的手机端的页面吗
7、解释一下rem
8、解释一下Promise是什么概念
9、在以往的项目里有遇到什么困难的点吗?