字节前端工程师秋招一面面经——许愿一个offer~~
岗位说明——碎碎念,干货在下面
其实我发现字节不同的部门面试还真不太一样,我投的是 前端开发工程师——今日头条/西瓜视频/内容生态 这个职位的,base在上海。
总的来说考的比较基础,真的挺基础的,但是还是有好几个问题没答上来,哎一边实习一边秋招,复习的时间太少了,基础还是不太扎实.....
我是有同学在上海的字节实习,然后我走的他的内推,结果负责我的hr就在他楼上办公,然后我投简历的时候他俩还在聊天hhhh。但是投的比较晚,错过了最近一批的笔试,可能因为实习的公司太优秀了吧(哈哈),反正我同学和我说的是,hr看到我的简历就直接安排面试啦
(是的,虽然是秋招,但是我没笔试....而且也不是提前批....也不知道这笔试成绩咋算....不知道有没有和我一样的....)
面试时间就是今天下午,我刚面完就来给大家写面经了,攒人品攒人品...
自我介绍
这部分其实挺重要的,我一般情况下会提前写好,然后照的念(但是念的也得好像你没照着念一样...就那个意思叭)。感觉好像大家面经里自我介绍都是一笔带过,我这里就说下我都说了啥:姓名,大四在读,学校专业(学校好的一定要先把学校说粗来!),目前实习的公司(实习公司好的也先说粗来!),校园经历(实验室、学生会、社团)几十个字简单提下就行,实习经历(在哪个项目用啥做了啥就OK),个人性格和兴趣爱好。
虽然看起来涵盖的东西挺多的,但我一共只说了不到2分钟,就,简单精要到每项只有几十个字就行。
css
块级元素、行内元素(这个我了解的比较细,巴拉巴拉讲了特别多,区别、特点、代表标签、几个特例等等)
伪元素、伪类(这个我也同上,巴拉巴拉讲了一大堆)
垂直居中
CSS真的都是问的最最基础的,可能因为我没条都讲的太细了吧,我自己就讲了老半天,然后就也没接着问。浏览器、网络
浏览器DOM渲染过程,包括async和defer。
感觉这块我没讲太明白,但是几个点应该都没错,其实很久之前复习的很明白,好久没看有点忘了哎...cookie localstorage sessionstorage
好吧其实这里后两个我也没讲太明白...真是复习时间不够啊哎跨域,jsonp原理(上周刚看但是当时就是咋也想起来,只记得只支持get哎。。。。然后面试官小姐姐就冲我乐...哎)
JavaScript
防抖函数
我说了自己在项目中是咋用的,其实用的loadsh封装的函数,然后又讲了下用JS自己写的话要怎么实现。闭包相关(这个印象深刻,其实是让做一道题,长这样:
for(var i=0;i<5;i++){ setInterval(function() { console.log(i) }, 1000 * i) }
问输出啥,这当然都是5,然后说了let,然后问题来了!
不用let要怎么实现和let一样的输出...
我知道用闭包,但是想了半天也没想出来咋写,就讲了讲闭包,写了写闭包....然后还是不知道咋写,反正就,最后是没写出来就下一题了。Promise
写出输出结果,并将明白为什么,一定要有多细讲多细,把你知道的都讲出来,我这扩展了老半天,宏队列微队列,同步异步那块也讲明白。setTimeout(function () { console.log(1); }, 0); new Promise(function executor(resolve) { console.log(2); for (var i = 0; i < 10000; i++) { i === 9999 && resolve(); } console.log(3); }).then(function () { console.log(4); }); console.log(5);
看题写结果
function fn() { this.user = "hello world"; return 1; // 这里如果写成return {}呢? } var a = new fn(); console.log(a.user);
算法题
给定一个整数数组 nums 和一个目标值 target,
请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。
可以假设每种输入只会对应一个答案。
但是,不能重复利用这个数组中同样的元素。
没有符合条件时返回空数组。
🌰 示例:
给定nums = [3, 5, 7, 15], target = 10;
因为nums[0] + nums[2] = 3 + 7 = 10,
所以返回[0, 2]
。
⚠️ 注意:
虽然nums[1] + nums[1] = 5 + 5 = 10
,
但由于不能重复利用这个数组中同样的元素,所以要排除这种情况。/** * @param {array, number} (nums, target) * @return {array} */ var findTargetIndex = function (nums, target) { };
光写出来不行,看有没有巧妙的方法,但是你想不出来巧妙的方法面试官会提示你,然后你在好好想想接着写
打印出 1 ~ 10000 之间的所有对称数
例如:[11, 22, 33, ... ,121, 1331, ..., 9999]
/** * @return {array} */ var printSymmetryNumber = function () { };
光写出来不行,看有没有巧妙的方法,但是你想不出来巧妙的方法面试官会提示你,然后你在好好想想接着写
结语
我大概记得就这些吧,面完以后没接着二面,可能凉了,毕竟浏览器网络那里答的真心不太好,想了想自己答的,就是给人一种你知道点啥但是却说不出很多东西的那种哎。
但是最后我问了小姐姐(没错面试官是小姐姐!)二面一般会隔多久呀(我是个心机girl),然后她说 可能一两天?或者其他时间,也不确定,看hr咋安排...
emmmm 但是一般字节其实都是三面连着面的,不知道是不是和我客套一下,等过了一两天没消息再让我同学问问吧。
真心许愿过,我这两天一定好好复习!毕竟同学直接内推,机会来之不易,加油fight!
#面经##校招##字节跳动##前端工程师#2020-09-27二面面经
https://www.nowcoder.com/discuss/527962