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

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

作者: 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