字节暑假实习前端一面
1. 场景题:
a. 聊天记录懒加载、虚拟滚动
- 问怎么填充没加载的动态元素的空间(比如聊天记录),答数文字数量和换行符数量大致计算。
b. 问怎么手写markdown渲染。不会。
2. 基础
a. async promise 输出时机和宏任务微任务。主要是async套promise套闭包的各种玩意
3. 算法题:
a. 合并无序数组并输出有序数组,但合并时,对相同的元素取数组内数量最多的合并,数量少的忽略不合并
- 例:[0, 2, 2, 2, 1, 9, 1]和[1, 1, 1, 2, 5] 合并为 [0, 1, 1, 1, 2, 2, 2, 5, 9]
- 我的思路是生成好一个记录元素最大数量的map之后,把key排序,再生成出结果的数组。不大知道怎么优化了
- 还问了点怎么优化空间复杂度的问题,我回答原地修改插入元素
b. 实现一个有sum功能,无限调用的add函数
- 例: add(1, 2, 3).sum(); 和 add(1)(2, 3).sum(); 和 add(1, 2)(3).sum(); 输出一样的结果
- 我的思路是让add函数返回它本身,然后在prototype设置sum和持续记录接收到的参数。但没写出来,甚至不知道思路对不对...
其实仔细想想都不咋难,甚至没咋问八股,但我真的太菜了
面试官还会给提示,但还是不会
a. 聊天记录懒加载、虚拟滚动
- 问怎么填充没加载的动态元素的空间(比如聊天记录),答数文字数量和换行符数量大致计算。
b. 问怎么手写markdown渲染。不会。
2. 基础
a. async promise 输出时机和宏任务微任务。主要是async套promise套闭包的各种玩意
3. 算法题:
a. 合并无序数组并输出有序数组,但合并时,对相同的元素取数组内数量最多的合并,数量少的忽略不合并
- 例:[0, 2, 2, 2, 1, 9, 1]和[1, 1, 1, 2, 5] 合并为 [0, 1, 1, 1, 2, 2, 2, 5, 9]
- 我的思路是生成好一个记录元素最大数量的map之后,把key排序,再生成出结果的数组。不大知道怎么优化了
- 还问了点怎么优化空间复杂度的问题,我回答原地修改插入元素
b. 实现一个有sum功能,无限调用的add函数
- 例: add(1, 2, 3).sum(); 和 add(1)(2, 3).sum(); 和 add(1, 2)(3).sum(); 输出一样的结果
- 我的思路是让add函数返回它本身,然后在prototype设置sum和持续记录接收到的参数。但没写出来,甚至不知道思路对不对...
其实仔细想想都不咋难,甚至没咋问八股,但我真的太菜了
全部评论
mark一下算法题
算法题b 应该和函数柯里化有关吧?
第二道算法题应该用闭包
实习还是社招啊
同学试试米哈游嘛?暑期实习前端有hc~可以进主页看看
佬 算法题是要求一定要用js写还是可以用其他语言写呀

什么部门啊佬
佬 啥部门
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享