当前位置: 首页 > 面试经验 >

字节-搜索方向前端一二三面

优质
小牛编辑
124浏览
2023-03-28

字节-搜索方向前端一二三面

20220510 字节-搜索方向前端一面

1.自我介绍

2.计算机网络模型有哪些?

3.具体每一层干什么的,传输的数据是什么,有哪些协议?

4.传输层tcp和udp

5.三次握手四次挥手,为什么是三次握手不能是其他的?

6.进程与线程的区别?

7.栈和堆

8.JS基本数据类型 引用数据类型分别有哪些?

9.基本数据类型之间的转换

10.

var x = +'1';
console.log(typeof x);
var y = '1' + 2;
console.log(y);

//number
//12

11.异步操作有了解过吗?

然后发了个简单的跟事件循环(宏任务微任务)的相关的打印输出题目。

12.具体说说事件循环的过程,微任务宏任务有哪些

13.算法口述思路:求一个二叉树的节点个数

14.缓存机制

15.手写居中垂直居中

看我写的时候 用的 id选择器,问了我使用 id 和 class

16.算法:求一个字符串的最长无重复的子串

(这道题总共写了半个多小时还没写出来,只会一个暴力方法[好菜,真的是一个经典的题目])

17.反问


20220512字节搜索方向二面

1.自我介绍

2.学前端多久了

3.简历里有写移动端300ms的延迟问题,问什么会有这个问题?

4.fastclick如何解决这个问题的呢?

5.从你的角度理解webpack干嘛的?

这题感觉自己答得好烂...

6.浏览器加载html的过程?

7.刚才说的paint 阶段是CPU还是GPU完成的?

8.构建 CSSOM 树的时候会阻塞 DOM树的构建吗?

9.如何避免 js 阻止 DOM 树渲染?

10.静态资源一般采取什么缓存策略?

11.之前说的fastclick是防抖还是节流?

12.一般用在防抖的场景还有哪些?

13.手写防抖和节流

14.

<div id="father">
    <div id="child">
        123
    </div>
</div>

document.getElementById('father').addEventListener('click', function(event) {
    console.log('father');
})

document.getElementById('child').addEventListener('click', function(event) {
    console.log('child');
})

点击'123'的输出

<div id="father">
    <a id="child" href="https://toutiao.com">
        123
    </a>
</div>

document.getElementById('father').addEventListener('click', function(event) {
    console.log('father');
})

document.getElementById('child').addEventListener('click', function(event) {
    console.log('child');
})

15.手写Promise.none

和Promise.all相反,当所有的promise被拒绝之后,none方法执行完成的决议,如果存在一个promise执行完成的决议,none方法则执行拒绝

16.算法:二叉树遍历

对于给定的二叉树,判断是否存在一条完整路径(从根节点开始,到叶节点结束的连线),其路径上结点的值之和为 target, 输出布尔值

17.智力题:100只老虎和1只羊在一个岛上;
老虎也可以吃草活着,但是更愿意吃羊;
每次只能有一只老虎吃一只羊,而且这只老虎吃完羊之后,就会变成羊,会被别的老虎吃;
假设所有的老虎都是理性的,那100只老虎和1只羊在,这只羊会被吃掉么

哈哈哈这题觉得自己好蠢,面试官提示可以从2只老虎,一只羊情况考虑。【然而我感觉还是没法从2只推到100只】之后每次面试官引导一波都会觉得天哪好牛,之后再自己推好像又脑子不够用

总结:一个找规律的题目

18.反问环节


20220517字节搜索三面

1.自我介绍

2.

if(!("a" in window)) {
    var a = 1;
}
alert(a);    //    undefiend

3.

var name = "222"
var a = {
    name: "111",,
    say: function(){
        console.info(this.name);
    }
}
var fun = a.say;
fun();
a.say();

var b = {
    name: "333",
    say: function(fun) {
        fun();
    }
}
b.say(a.say);
b.say = a.say;
b.say();

4.

for(var i = 0; i < 5; i++){
    setTimeout(function(){
        console.log(i);
    },1000);
}
for(var i = 0; i < 5; i++){
    (function(i){
        setTimeout(function(){
        console.log(i);
    },1000);
    })(i);
}
console.log(i);

5.XMLHttpRequest 怎么使用

6.跨域的实现策略有哪些

7.实现两个大正数相加操作

function bigNumSum(num1: string, num2: string):string {}

8.webpack 的 plugin 和 loader 的区别和原理

9.vue-lazyload 的怎么实现的

10.反问

这个面试官基本上一个点喜欢深挖,而我可能学得不太深,所以应该是凉了。

不得不说字节效率是真快,当天面完当天晚上约二面,当然凉的也快,面完差不多一个小时就收到了感谢信。不过还是自己学习的深度不太够,三面的时候面试官建议我赶紧找个实习,建议大城市,规模也不要太小。

#字节跳动实习##春招##实习##面经##前端##字节跳动##前端工程师#
 类似资料: