首页 > 字节跳动提前批前端-西瓜视频一面面经(已到三面,后续更新)
头像
滴滴内推小能手
编辑于 2021-08-11 12:34
+ 关注

字节跳动提前批前端-西瓜视频一面面经(已到三面,后续更新)

一面

  • 路由的两种模式(history&&hash)

  • 从输入url到浏览器渲染的全过程,接着问回流和重绘

  • 宏任务微任务的执行顺序,然后给了一个题目,看代码说结果,分析原理。

    async function async1() {
        console.log('async1 start');
        await async2();
        console.log('asnyc1 end');
    }
    async function async2() {
        console.log('async2');
    }
    console.log('script start');
    setTimeout(() => {
        console.log('setTimeOut');
    }, 0);
    async1();
    new Promise(function (reslove) {
        console.log('promise1');
        reslove();
    }).then(function () {
        console.log('promise2');
    })
    console.log('script end');
    
  • 三次握手的过程,为什么要三次,不能两次?四次?

  • https和http区别?ca证书里面有什么?

  • 接上一问,引发性问了我一个题目:要是https在传公钥的时候被劫持了怎么办?

    这样还会比http安全么?

    其实这,我当时没想到,还是后面百度了才知道,简要的来说是 其实是CA证书机构会对其进行一个签名的操作,而我们拿到之后本地浏览器会进行验证签名。判断是不是真实的CA公钥,而不是被人劫持之后改过的。

  • 代码题:一个爬楼梯(一个经典的简单题目)。还问了如何优化

    题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
    核心实现
        public int JumpFloor(int target) {
            if(target <= 2){
                return target;
            }else{
                return JumpFloor(target-1) + JumpFloor(target-2);
            }
        }
    优化:我是加了一个记忆化数组。
  • 场景题:假设有10个接口,封装一个工具,实现10个接口并发请求,但保证最后的结果按顺序输出。

    第一时间就想到promise.all 写了一个promise.all的实现。

  • 反问:

    • 部门:西瓜视频
    • base:厦门
    • 对我的评价的什么巴拉巴拉的。

小结:这是我秋招面的第一家,还是字节好啊,给机会面试。不像有些中小厂,提前批根本不给面试机会。这一面其实时间比较短,大概我50分钟,问的问题也不多,但是字节喜欢问的比较深,会问了相关的问题,考察我们的知识广度,看是不是背的八股文。这次的算法题倒是比较简单,都知道字节考算法考的难,我上半年面试暑假实习,可是没少让我难受。

二面

  • 自我介绍

  • 判断数组的方法?说一下instanceof的原理? 所有类型都能准确判断出来么?

  • 看代码写结果

    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())
  • es6新特性:箭头函数 、let const、promise

  • 手撕函数柯里化。

  • 手撕promise实现。

  • 手写寄生组合式继承(一次手撕三个,不愧是字节)

  • 作用域和作用域链

  • 谈谈你对原型链的理解

  • 说一下vue组件的有哪些通信方式?eventbus了解过么?和vuex从原理上有什么区别?

  • Flex布局(flex:1 flex:auto区别)

  • BFC?

  • 有做过哪些性能优化么

  • 然后就开始扯项目了。

小结:二面比较奇怪,没有问算法。可能是让我手撕了几个代码感觉比较费时间,就不问算法了吧。

更多模拟面试

全部评论

(4) 回帖
加载中...
话题 回帖

相关热帖

近期热帖

近期精华帖

热门推荐