回复: 3
跳转到指定楼层
上一主题 下一主题
收起左侧

字节跳动前端挂经

全局:

2020(7-9月) 码农类General 硕士 全职@字节跳动 - 内推 - 技术电面  | Fail | 在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
本帖最后由 bluefield 于 2021-2-12 14:31 编辑

都是在线面,用牛客来写代码。基本都是在考前端基础
1. 找到字符串中的第一个回文子串 (初始下标最小的,尽量长的回文子串)
2. (React / 宏任务) 说出代码的输出
  1. class C {
  2.   f () {
  3.     this.setState({}, () => console.log(1))
  4.     setTimeout(() => console.log(2), 0);
  5.   }
  6. }
复制代码


3. (宏任务 / 微任务) 说出代码的输出【这类题目的变形很多,不过只要理解宏任务和微任务就不难!】
  1. setTimeout(() => console.log(2), 0);

  2. new Promise((resolve, reject) => {
  3.   console.log(3);
  4.   resolve(1);
  5. })
  6. .then(i => {. .и
  7.   console.log(i);
  8.   Promise.resolve().then(() => console.log(4))
  9. });

  10. console.log(5);
复制代码


4. (原型链,作用域) 说出代码的输出【要深刻地理解JS的变量查找!】
  1. function Foo() {. 1point 3 acres
  2.   f = function(){ console.log(1); };
  3.   return this;
  4. }
  5. Foo.f = function() { console.log(2); };
  6. Foo.prototype.f = function(){ console.log(3); };
  7. . 1point3acres
  8. f(); // ???. 1point3acres

  9. var f = function() { console.log(4); };. 1point 3 acres
  10. function f(){ console.log(5); }
  11. . 1point3acres.com
  12. Foo.f(); // ???
  13. f(); // ???
  14. Foo().f(); // ???
  15. f(); // ???
  16. new (Foo.f)(); // ???.
  17. (new Foo()).f(); // ???
复制代码
. Waral dи,

5. 实现一个Queue,希望使用方法如下

  1. new Queue()
  2.     .task(1, 3000) // 任务1,需要等待3秒执行. 1point3acres.com
  3.     .task(2, 2000) // 任务2,需要等待2秒执行. 1point3acres
  4.     .task(3, 2000) // 任务3,需要等待2秒执行. Waral dи,
  5.     .task(4, 1000) // 任务4,需要等待1秒执行. check 1point3acres for more.
  6.     .run();
  7. // 第3秒输出1 ..
  8. // 第5秒输出2
  9. // 第7秒输出3
  10. // 第8秒输出4
复制代码


有个变体,new Queue(2)时模拟2并行的任务执行者:
  1. new Queue(2)
  2.     .task(1, 3000) // 任务1,需要等待3秒执行
  3.     .task(2, 2000) // 任务2,需要等待2秒执行
  4.     .task(3, 2000) // 任务3,需要等待2秒执行
  5.     .task(4, 1000) // 任务4,需要等待1秒执行
  6.     .run();
  7. // 第2秒输出2. check 1point3acres for more.
  8. // 第3秒输出1
  9. // 第4秒输出3
  10. // 第4秒输出4
复制代码

. Χ
类似的变体是懒汉:
  1. new LazyMan("Jake")
  2.     .eat("potato")
  3.     .wait(2000)
  4.     .say("Hello")
  5.     .wait(1000)
  6.     .eat("tomato);.--
  7. // 期望输出:
  8. Hello, I'm Jake!
  9. eat potato
  10. wait 2000ms // 这里需要真的等2秒
  11. Hello
  12. wait 1000ms // 这里需要真的等1秒
  13. eat tomato
复制代码


6. script  标签的 defer / async
7. 以下代码如何输出. .и

  1. const list = [1, 2, 3];
  2. const square = num => {. ----
  3.     return new Promise((resolve, reject) => {
  4.         setTimeout(() => {
  5.             resolve(num * num);
  6.         }, 1000);.--
  7.     });
  8. }
  9. function test() {
  10.     list.forEach(async x => {
  11.         const res = await square(x);-baidu 1point3acres
  12.         console.log(res);
  13.     });
  14. }. From 1point 3acres bbs
  15. test()
复制代码


.1point3acresFollow up: 如何修改代码在第一秒输出1,第二秒输出4,第三秒输出9

8. 设计一个柯里化函数(currying ),实现sum(100,200)(300)(400); (将所有入口参数相加 )得到1000-baidu 1point3acres
9. versions 是一个项目的版本号列表,因多人维护,不规则。需要实现一个方法,把 versions 里的至从小到大排序。
举例:输入这样的一个 versions. 1point 3acres
['1.45.0', '1.5', '6', '3.3.3.3.3.3.3'],输出是 ['1.5', '1.45.0', '3.3.3.3.3.3', '6']。请注意 '1.45' 比 '1.5' 大。
. 1point 3 acres
希望能对大家有帮助,祝各位新年offer多多!最后,lz比较缺米,求米!

评分

参与人数 4大米 +27 收起 理由
匿名用户-327W8 + 22
氢锂钠钾铷铯钫 + 1 赞一个
hellokk404 + 3 欢迎分享你知道的情况,会给更多积分奖励!
sweetdaisy + 1 赞一个!

查看全部评分


上一篇:微软北京STCA暑期实习
下一篇:亚马逊业务分析师面经
🔗
 楼主| bluefield 2021-2-12 14:08:01 | 只看该作者
全局:
本帖最后由 bluefield 于 2021-2-12 14:10 编辑

关于Queue的那个我可能没有讲清楚,应该是这样才对,这个队列要按照任务添加的顺序执行任务,每个任务在等待第二个参数ms之后,输出第一个参数。
  1. new Queue()
复制代码
回复

使用道具 举报

🔗
hellokk404 2021-2-12 16:11:26 | 只看该作者
全局:
楼主面的是哪个部门
回复

使用道具 举报

🔗
 楼主| bluefield 2021-2-12 17:28:18 来自APP | 只看该作者
全局:
hellokk404 发表于 2021-02-12 00:11:26
楼主面的是哪个部门
教育线相关的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表