美文网首页
字节跳动的佛系面试——幸运吧

字节跳动的佛系面试——幸运吧

作者: LightiSnow | 来源:发表于2020-10-27 10:41 被阅读0次

    字节跳动

    企业应用

    一面

    • 面试官还是挺和蔼的,貌似在自己的出租房里,全程大概40分钟,首先自我介绍,重点考察基础
    • 冒泡排序工作过程,算法复杂度多少,总共需要多少次交换,为什么是n平方
    • 斐波拉契数列求第n项,我用了递归,问有没有什么优化(
    • 版本号的数组排序
    • http协议状态码有了解吗?
    • 401和403知道吗?如果一个管理员为了一个资源设置了访问权限,当普通用户通过认证之后访问,你觉得应该返回那个状态码
    • 301和302知道吗?
    • 304知道吗?怎样让一个资源使用强缓存,通过什么方法设置?
    • 307知道吗?
    • 请求头中的Host字段有什么用,浏览器不是已经有了url吗?为什么还要host
    • Content-Type字段了解吗?用了干什么的?响应中有没有这个字段?
    • js中如何判断一个变量是不是数组?
    • typeof行不行?construct查找是什么原理?
    • 能不能通过判断这个变量有没有reduce方法,来判断有没有数组?
    • reduce方法了解过吗?
    • Promise相关的2个代码的执行结果

    二面

    • 面试官先自我介绍了一下,然后我自我介绍,全程50分钟
    • 你为什么选择前端呢?(
    • 看到你项目当中写了http2,能说一下http2和http1.1的区别吗?
    • http2协议用的多吗?有关注过大厂的网站都是基于http2的吗?
    • 那你觉得用http2有什么不好的地方,相比http1.1
    • https的tls握手过程说一下
    • nginx如果需要配置http2具体要怎么做呢?
    • http中的cache-control有哪些字段,分别代表什么意思,以及应用场景
    • 下面开始写代码
      • 实现以下数组的flat(数组扁平化)
    function FinalFalt(arrVal) {
        var result = [];
    
        function MyFlat(arr) {
            for (let i = 0; i < arr.length; i++) {
                if (Array.isArray(arr[i])) {
                    MyFlat(arr[i]);
                } else {
                    result.push(arr[i]);
                }
            }
        }
    
        MyFlat(arrVal);
        return result;
    }
    
    var arr = [1, [1, [2]]];
    FinalFalt(arr);
    console.log(FinalFalt(arr));
    
    • 页面上有一个按钮,点击一下然后有倒计时的效果,从10,9,8,7....倒计时
    • 如果点击一下需要暂停又该怎么做
    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    
    <body>
        <button id="clock">点击</button>
        <p id="content"></p>
    
        <script>
            var ele = document.getElementById('clock');
            ele.addEventListener('click', clickWrapper);
            var el = document.getElementById('content');
    
            var isClick = false;
            var timerId;
            function clickWrapper() {
                // 我一开始把var timerId 放到了这个地方,没用,后来提到了外面就可以了,面试官问为什么,提到外面这个clickWrapper函数就是一个闭包函数
                var cur = 10;
                isClick = !isClick;
                console.log(isClick);
                if (isClick) {
                    execFuc();
                } else {
                    stopFuc();
                }
                function execFuc() {
                    timerId = setInterval(() => { el.innerHTML = `${cur--}` }, 1000);
                }
                function stopFuc() {
                    clearInterval(timerId);
                }
            }
        </script>
    </body>
    </html>
    
    • 如代码中的注释部分,面试官问,为什么提到外面就好了,如果var换成let还有效吗?为什么?
    • 严格模式有了解吗?有什么特点?
    • webworker了解过吗?
    • 大量的计算和http请求这种操作一样吗
    • webworker到底是为了解决那种呢?还是说两种都解决了

    相关文章

      网友评论

          本文标题:字节跳动的佛系面试——幸运吧

          本文链接:https://www.haomeiwen.com/subject/ibhamktx.html