2021.2
一面过了,但是进系统选了其他部门,就没有继续流程了。
一、笔试题
1、对象扁平化
说明:请实现 flatten(input) 函数,input 为一个 javascript 对象(Object 或者 Array),返回值为扁平化后的结果。
示例:
> var input = {
> a: 1,
> b: [ 1, 2, { c: true }, [ 3 ] ],
> d: { e: 2, f: 3 },
> g: null,
> }
> var output = flatten(input);
> output如下
> {
> "a": 1,
> "b[0]": 1,
> "b[1]": 2,
> "b[2].c": true,
> "b[3][0]": 3,
> "d.e": 2,
> "d.f": 3,
> // "g": null, 值为null或者undefined,丢弃
> }
> function flatten(input) {
> /** 代码实现 */
> }
2、原子的数量(简化版)
> 根据表达式计算字母数。
> 说明:
> 给定一个描述字母数量的表达式,计算表达式里的每个字母实际数量
> 表达式格式:
> 字母紧跟表示次数的数字,如 A2B3
> 括号可将表达式局部分组后跟上数字,(A2)2B
> 数字为1时可缺省,如 AB3。
> 示例:
> countOfLetters('A2B3'); // { A: 2, B: 3 }
> countOfLetters('A(A3B)2'); // { A: 7, B: 2 }
> countOfLetters('C4(A(A3B)2)2'); // { A: 14, B: 4, C: 4 }
>
> function countOfLetters(letters, res) {
> /** 代码实现 */
> }
原题连接:https://leetcode-cn.com/problems/number-of-atoms/ 726. 原子的数量
3、节流
> 实现一个`Foo`方法,接受函数`func`和时间`wait`,返回一个新函数,新函数即时连续多次执行,但也只限制在`wait`的时间执行一次。
> function Foo(func, wait) {
> /* 代码实现 */
> }
二、电话面试
先是1h笔试。五分钟后面试官打来电话
1. 先说刚才三个题的思路
2. 开始聊天
3. 你是怎么学习前端的?
4. 有没有参与开源作品的经历?热爱分享?平常怎么分享?分享哪些内容?
5. 我看你项目是小组长?你是怎么做这个小组长的?
(我答了技术上和非技术上的)
6. 现在的项目有几个人?为什么是你当小组长?
7. 遇到了哪些问题?如何解决的?
8. 前端工程化
(我答了webpack,git,babel,less-loader简答的)
9. 我看你项目写的是Vue,有没有了解过这个框架的深层原理和怎么设计的?
我:跟着官网看过文档,了解一些MVVM,响应式的原理,源码还没有看过
10. 有没有用过react?
11. 在了解Vue原理的时候有没有想过他的哪些架构更适合于你业务上哪些具体的问题?(具体问题忘了,但是很架构,我完全不懂)
12. 有没有了解过loader?(具体问题没听清
13. 现在样式是写在style里的,如果把各个文件写在style里的样式提取出来?(讲了一个ast,loader,没听懂)
14. 除了阿里应该还投了其他的吧?
全部评论
(1) 回帖