字节前端面经

1,467 阅读2分钟
  1. 体验极佳,只不过有点可惜,
  2. 最后两道简单的编程题写的不好,最后一道算法时间复杂度太高了。
  3. 应该是编程题没写好,导致没有三面了。除了可惜就是可惜
  4. 看来以后的路得更加努力,我还年轻,吃苦趁现在,愿等花开

一面面经:

1. 浏览器垃圾回收机制

2. for in和for of的区别

3. vue检测数组的变化

4. nextTick的原理

5. useEffect和userLayoutEffect的区别

6. node相关

7. 数据库相关

8. http头部

9. http和https的区别

10. web网络安全

11. 抛硬币问题

12. 函数柯里化(编程题)

13. 类防抖节流编程题

实现一个repeat方法,要求如下:

// 需要实现的函数 

function repeat (func, times, wait) {}, 

// 使下面调用代码能正常工作 

const repeatFunc = repeat(console.log, 4, 3000);

repeatFunc("hellworld");

//会输出4次 helloworld, 每次间隔3秒

二面面经:

1. 项目相关

2. http状态码

3. tcp和udp的区别

4. http里面的算法

5. iframe的缺点

​ 1,会阻塞主页面的onload事件

​ 2,即使iframe的内容为空,加载也需要时间

​ 3,该元素没有语义,不利于seo

​ 4,iframe框架页面会增加服务器的http请求,对于大型网站是不可取的。

6. 跨域及解决办法

7. webpack性能优化

8. call,apply,bind的区别

9. promise异步写答案

  • setTimeout(function() {
       console.log(1)
    }, 0);
    new Promise(function(resolve) {
       console.log(2);
       for(var i=0 ; i < 10000 ; i++) {
         if (i == 9999) {
            resolve();
         }
       }
       console.log(3);
    }).then(function() {
       console.log(4);
    });
    console.log(5);
    

10. this指向写答案

  • var length = 10;
    function fn() {
      return this.length+1;
    }
    var obj = {
       length: 5,
       test1: function() {
          return fn();
       }
    };
    obj.test2=fn;
    //下面代码输出是什么
    console.log(obj.test1())
    console.log(fn()===obj.test2())
    

11. Node.js读取文件

12. 算法编程题

​ 500张骨牌整齐地排成一行,按顺序编号为1、2、3、……、499、500。第一次拿走所有奇数位置上的骨牌,第二次再从剩余骨牌 中拿走奇数位置上的骨牌,以此类推。请问最后剩下的一张骨牌的编号是?

13. 算法编程题

​ 三数之和:给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c的值与target相等?