字节跳动前端二面视频1小时10分钟

字节跳动今日头条前端二面视频1小时10分钟

2020-05-21 14:00

(嗯...回答得要好不好的,脑壳疼,犯了很多低级错误,另外的话,对于一些手写不是很熟,后面要好好注重一下手写了。再者,字节的面试好像都偏向手写,普通知识点问得不是很难,一般情况下不会追问很深,当然个人项目他们还是非常感兴趣的,会多问一点。)

1.自我介绍

2.你个人博客的接口怎么设计的?都返回了什么?

3.斐波那契数列。最开始我写的第一种,然后面试官要求降低空间复杂度(算是我第一次遇到要求考虑空间复杂度的面试题)就改写了第二种。另外我当时写的是没有考虑Index的合法性,被面试官批评了。
function F(index){
  if(index <= 0) return 0
  let fa = [];
  [fa[0], fa[1]] = [1, 1]
  //第一种
  for(let i = 2; i < index; i++){
    fa[i] = fa[i-1] + fa[i-2]
  }
  return fa[index-1]
  //第二种
  //for(let i = 2; i < index; i++){
  //  [fa[0],fa[1]] = [fa[1],(fa[1] + fa[0])]
  //}
  //return fa[1]
}

4.promise.all手写实现。如何保证返回值的按正确顺序输出。(唉,对promise不是很熟,会看不会写。虽然面试官在努力引导了,但我还是只写了一个伪代码)
5.事件队列。按正确顺序写出输出。(唉,天天说不考不考,这下async/await栽了吧。'async1 end'这一条我位置弄错了,其他都对了,不知道面试官会不会网开一面)
async function async1() {
  console.log('async1 start');
  await async2();
  console.log('async1 end');
}
async function async2() {
  console.log('async2');
}
console.log('script start');
setTimeout(function() {
    console.log('setTimeout1');
}, 200);
setTimeout(function() {
    console.log('setTimeout2');
    new Promise(function(resolve) {
        resolve();
    }).then(function() {
        console.log('then1')
    })
    new Promise(function(resolve) {
        console.log('Promise1');
        resolve();
    }).then(function() {
        console.log('then2')
    })
},0)
async1();
new Promise(function(resolve) {
    console.log('promise2');
    resolve();
  }).then(function() {
    console.log('then3');
  });
console.log('script end');

6.以下代码输出什么,如何更改让它正常输出;
for(var i=0;i<10;i++) {  setTimeout(() => console.log(i));  }

7.HTTP缓存;

8.虚拟DOM的原理,优势以及劣势;

9.智力题,有两根不均匀分布的香,香烧完的时间是一个小时,你能用什么方法来确定一段15分钟的时间。

10.反问环节。内容就不说啦,不过面试官推荐我去看剑指offer,然后对于web存储可以去看下一localforage是一个新的东东。顺便看一下websql,indexDB

(手动艾特某一位仍然0offer的可爱的小朋友,嘿嘿,咱们秋招碰一碰,谁先走谁小狗)
#字节跳动##前端工程师##实习##面经#
全部评论
请问一下楼主,字节笔试作为刷人标准嘛,是如何进行笔试的呀
点赞 回复 分享
发布于 2020-05-22 11:01
视频面还要手写的么?
点赞 回复 分享
发布于 2020-05-23 02:28
异步输出那道题的答案是啥呀
点赞 回复 分享
发布于 2020-05-23 13:14

相关推荐

2 24 评论
分享
牛客网
牛客企业服务