字节前端一面

校园招聘-前端开发工程师-产品研发岗位,具体部门不太清楚,似乎是某游戏部门。
面试官是一个比较年轻的小哥哥,全程70min。
自我介绍说了自己刚学前端不久,只学了html css js(es5部分比较熟,es6不太熟)。
然后小哥哥问项目中有没有什么比较有意思或者难解决的问题,我...一时想不到。

CSS相关

问题1:定位有哪些?相对定位和绝对定位的区别?
答:①定位有相对定位(relative)、绝对定位(absolute)、静态定位(static)、固定定位(fixed)、粘性定位(sticky)。②Ⅰ相对定位不脱标(在标准流中的位置保留),绝对定位脱标(在标准流中的位置不保留)。Ⅱ相对定位的参照物是自己原来的位置,绝对定位的参照物是离自己最近的设置了相对或绝对定位的父元素。Ⅲ暂时就想到这两个,欢迎补充。

问题2:如果不用定位能怎么实现重叠盒子的效果?
答:浮动也可以。

问题3:有什么效果是浮动能做到而flex做不到的?
答:重叠盒子?这题我真不太会...

JS相关

问题1:(项目里的)原生JS实现轮播图是怎么做的?
答:(实现方法应该不止一种,这里只说我的实现方法)(项目里有五张图片以及五个与之对应的圆点)①先给每个图片和圆点都添加一个自定义属性index,这样就能把图片和圆点一一对应。②一个变量preIndex保存上一次被显示的图片和圆点的index。③给每个圆点添加点击事件,若被点击的圆点的index不等于preIndex,则通过添加删除类名的方式改变显示的图片和高亮的圆点。

问题2:(事件代理)如果一个列表中有很多项,给每个项都绑定点击事件的话会有很大开销,怎么优化?浏览器的事件传播机制是怎样的?有考虑过为什么要有这样的事件流(传进来又传出去)吗?
答:①利用事件冒泡,给父元素绑定点击事件而不是给子元素绑定。②事件捕获(根节点->触发事件的元素)->目标阶段->事件冒泡(触发事件的元素->根节点)。③Ⅰ刚开始是因为网景和微软的浏览器的实现方式不同,后来的浏览器为了兼容他俩所以都这样设计了。Ⅱ更重要的是可以根据想要的效果不同而在不同的阶段处理事件。如果某个元素被点击了,但是我不想让它被触发,就可以在事件捕获阶段把它直接砍掉。

问题3:this指向?
答:①如果作为对象的实例方法被调用就是指向这个对象。②如果在全局环境中调用就是指向window。③可以使用call(),apply()方法改变this的指向。④用new调用的函数中的this指向刚创建的这个对象。

问题4:如果用new调用函数,而这个函数中有return,那它return出来的是什么?
答:①如果没有写return就是返回这个新创建的对象。②如果返回值是非对象类型的数据(比如写了个return 0;),那么还是正常返回这个新创建的对象。③如果写了对象类型的返回值,那么就返回这个显式声明的对象。

问题5:用new调用函数时怎么把新创建的对象与构造函数的原型联系起来的?(或者说实例对象、原型对象和构造函数三者的关系是怎样的?)
答:实例对象与构造函数没有直接关系,原型对象作为纽带将它们联系起来。实例对象的_proto_指向原型对象,原型对象的constructor指向构造函数,构造函数上的prototype指向原型对象。

问题6:代码执行结果?
if([]) console.log(1);
if([].length) console.log(2);
if({}==={}) console.log(3);
if({}=={}) console.log(4);
答:只会输出1。①Object类型中除了null之外的任何对象转换为布尔值都是true,空数组虽然内容为空,但是其本身是一个对象,所以转换为true。输出1。②空数组的长度为0,转换为false,不输出。③任意两个对象都是不等的,因为它们的内存地址不同。所以都是false,不输出。

问题7:代码执行结果?不用let怎么让他输出想要的结果?
for(var i=0;i<6;i++){
    setTimeOut(function(){
        console.log(i)
    },1000);
}
答:①输出6个6。②再多加一层闭包,中间那个立即执行函数形成的闭包保存了不同的 i 值
for(var i=0;i<6;i++){
    setTimeOut(function(num){
        return function(){
            console.log(num);
        }
    }(i),1000);
}

计网相关

问题1:TCP的握手过程?为什么握手要三次?
答:①会有三次握手。客户端发送请求给服务器->服务器返回ACK->客户端返回ACK。②为了确保双方的收发功能都是正常的。

问题2:TCP的拥塞控制(慢启动与快恢复)?
答:二者功能类似,但是阶段不同。功能:都是增大发包的速率。阶段:慢启动在启动的阶段,快恢复在遇到网络拥塞等异常状况的时候。(还不太清楚,留个坑以后填上)

问题3:DNS的查询过程?

编程题

题目:输入一个字符串,要求删除其中由相同字符组成的长度大于等于2的子串。
示例:输入"abbbaca"->删掉bbb变成"aaca"->删掉aa,得到结果"ca"
答:思路:用栈,如果新入栈的字符和栈顶的相同就删掉。
const test = 'abbbaca'; //测试用例
const len = test.length;
const stk = [test[0]];
for (let i = 1; i < len; i++) {
    if (stk.length) {
        let top = stk[stk.length - 1];
        //如果将要入栈的字符和栈顶字符相同,就将指针后移到这个全由相同字符组成的子串的最后一位,并且删除栈顶元素
        if (test[i] === top) {
            while (test[i] === test[i + 1]) {
                i++;
            }
            stk.pop();
        } else {
            stk.push(test[i]);
        }
    } else {
        stk.push(test[i]);
    }
}
console.log(stk.join(''));

反问

我:学前端起步晚,现在也不会多少东西,也没学过框架,对我这样的应聘者更注重考查什么?
小哥哥:①框架只是个工具,框架使用经验的有无不重要。②校招不会很重视项目经验,主要看基础(语言基础,计算机基础等)。③有无潜力与亮点(对问题的好奇心,对技术的钻研等),比如做项目时遇到问题怎么解决的。④写代码(刷题)(嘤嘤嘤

我:哪个部门?
小哥哥:做游戏相关的前端,是一个很大的团队,技术栈很多。

总结

通过这次面试发现自己的JS基础还是不太行(稍微深挖一些就还是比较懵),算法题也刷的少了(小哥哥说给一个比较简单的题,但是我也没写出来......)。

#前端##面经##校招##字节跳动##前端工程师#
全部评论
这就是985的力量啊 同城二本简历都过不去
4 回复 分享
发布于 2021-09-18 13:26
不熟悉框架无项目经验竞争力就小很多了,甚至简历都过不了。
3 回复 分享
发布于 2021-09-17 10:49
楼上说的对. react和vue还是要接触的. 尚硅谷的张天禹讲的都很棒,b站有课我看到react很不错就是墨迹.但是墨迹到心坎了
2 回复 分享
发布于 2021-09-17 10:54
楼主加油(请问投递多久约到面试
1 回复 分享
发布于 2021-09-17 13:52
楼主的面试贴写的很细致!希望可以多多看到你的贴子
1 回复 分享
发布于 2021-09-18 14:33
楼主一起加油呀,虽然感觉要把时间线拉到春招了,希望十月能收到个offer😉
1 回复 分享
发布于 2021-09-24 07:48
唉,双非一本不知道卡不卡学历
1 回复 分享
发布于 2021-09-24 21:08
哥们加油!(有后续吗)
点赞 回复 分享
发布于 2021-09-17 10:54
啊,那你笔试做得咋样??
点赞 回复 分享
发布于 2021-09-17 22:02
我才楼主是名校的。。。
1 回复 分享
发布于 2021-09-18 10:51
又刷到楼主小姐姐了,给你加油
点赞 回复 分享
发布于 2021-09-20 20:07
冲他丫的
点赞 回复 分享
发布于 2021-09-22 09:54
小姐姐加油!想问一下没问项目嘛?
点赞 回复 分享
发布于 2021-09-22 16:53
姐姐学了多久前端啊
点赞 回复 分享
发布于 2021-09-22 23:03
天呐!学姐是大四的吗?!
点赞 回复 分享
发布于 2021-09-23 13:16
小姐姐面试过了之后再通知你二面吗~我现在也是收到一面的邀请
点赞 回复 分享
发布于 2021-10-08 21:54

相关推荐

C++17了解什么新特性智能指针shared_ptr内存分布为什么make_shared比直接构造更快weak_ptr底层缓存一致性多线程编程,用过哪些用过哪些内存序无锁队列,实现细节原子变量,底层实现volatile有什么用,和内存屏障区别是什么SO_REUSEADDR套接字选项SO_REUSEPORT套接字选项TIME_WAIT怎么优化服务端time_wait过多怎么办介绍IO多路复用为什么要有IO多路复用项目同步RPC怎么改异步为什么网络库是异步的,RPC是同步的定时器怎么做的性能优化&nbsp;哪里可以优化介绍RAFT算法raft各种条件下如何处理(这一块差点裂开)raft优化场景题:游戏里面英雄的皮肤,节约内存如何设计反问:1.游戏后台和互联网后台最大的区别是什么2.表现如何(这种场合不方便透露,会有HR联系)TOP游戏外企-FunPlus2025届秋季校园招聘【公司简介】FunPlus于2010年在硅谷创立,以“用最好的产品为全球玩家带米哈游来极致的娱乐享受”为使命,致力于用游戏及娱乐产品连接全球用户、连接合作伙伴、连接多元文化,是全球最顶级的移动游戏公司之一【招聘岗位】技术类、产品策划类、美术类、发行类、运营类、用研/行研类、项目管理类、职能类【工作城市】北京、上海、杭州、广州【薪酬待遇】行业头部极具竞争力的薪资+丰富的员工福利【投递链接】https://app.mokahr.com/m/campus_apply/funplus01/147931?recommendCode=DSX76vas&amp;hash=%23%2Fjobs#/jobs【内推码】DSX76vas(简历优先筛选,后续有疑问或者流程问题欢迎随时联系)大家投递完可以在评论区打上姓名缩写+岗位,我来确认有没有内推成功喽
FUNPLUS
|
校招
|
超多精选岗位
点赞 评论 收藏
分享
评论
23
130
分享
牛客网
牛客企业服务