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

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.反问

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

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

#字节跳动实习##春招##实习##面经##前端##字节跳动##前端工程师#
全部评论
请问17智力题老虎和羊应该如何回答
1 回复 分享
发布于 2022-05-18 22:26
这个堆和栈怎么去回答呢?这样吗? 栈:他的特点是先进后出。用来保存程序中的基本数据类型和引用数据类型的引用地址。 堆:用来保存闭包的变量和引用数据类型。
点赞 回复 分享
发布于 2022-05-18 16:34
谢谢分享😀
点赞 回复 分享
发布于 2022-05-18 21:39
那楼主是要继续找实习吗
点赞 回复 分享
发布于 2022-05-19 08:15
这是日常实习吗
点赞 回复 分享
发布于 2022-05-19 19:37
大佬,你之前云智offer了吗?我已经挂了😂
点赞 回复 分享
发布于 2022-05-23 14:51
点赞 回复 分享
发布于 2022-05-27 23:12
这么巧,面的是搜索前端?我刚从这个部门提离职🤣
点赞 回复 分享
发布于 2022-05-28 20:34
有没有前端学习微信群
点赞 回复 分享
发布于 2022-05-28 23:23
大佬 简历中是写到了webpack吗
点赞 回复 分享
发布于 2022-07-14 17:23
还有一方面可能没hc了
点赞 回复 分享
发布于 2022-07-14 20:24
借楼   家人们欢迎投递 Zoom哦  各岗位hc多多, 尤其是合肥和苏州 直接点击链接投递即可,我这边就能跟踪到面试进度! 内推链接:https://dwz.cn/S5PDTDfe
点赞 回复 分享
发布于 2022-07-27 16:41
组里已经有很多实习生了,别来卷了
点赞 回复 分享
发布于 2022-07-31 17:35
快跑
点赞 回复 分享
发布于 2022-07-31 17:56

相关推荐

优化Webpack的构建速度是一个常见的需求,下面是一些常见的优化策略:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&amp;uuid=fffb9e7b5576495f90d9596c40989b9f通过配置缓存:可以使用cache-loader或者hard-source-webpack-plugin来启用缓存,避免重复编译没有改动的文件。通过配置多线程/并行构建:可以使用thread-loader或者happypack来在多个工作线程中并行处理任务,加快构建速度。减少文件的解析和处理:可以通过配置resolve.extensions来减少Webpack的文件解析,只处理特定格式的文件。另外,使用include和exclude选项来限制需要处理的文件范围。优化Loader的配置:可以使用exclude选项来排除不必要的目录,只对需要处理的目录使用对应的Loader。另外,可以使用resolve.alias来配置别名,减少模块查找时间。使用Tree&nbsp;Shaking:通过配置mode为production,并且在package.json中将sideEffects设置为false或者具体的文件列表,开启Tree&nbsp;Shaking功能,剔除掉未使用的代码。合理使用Webpack的插件:根据具体需求,合理选择和配置Webpack的插件,避免不必要的处理和压缩。使用DllPlugin和缓存:可以将一些不经常变动的库使用DllPlugin预先编译,并将结果文件缓存起来,这样可以避免每次构建都重新编译这些库。以上是一些常见的Webpack构建速度优化策略,根据具体的项目需求和情况选择合适的优化方式。
点赞 评论 收藏
分享
24 145 评论
分享
牛客网
牛客企业服务