字节跳动前端一面+二面+三面面经(无)

字节跳动前端一面 1h

  • 自我介绍

  • Flex布局,实现两个子元素垂直,并且一个靠右一个靠左

 <div class="parent">
    <div class="left"></div>
    <div class="right"></div>
 </div>
  • css代码
.parent {
   display: flex;
   align-items: center;
   justify-content: space-between;
   height: 400px;
   border: 1px black solid;
}
.left {
   width: 100px;
   height: 150px;
   border: 1px red solid;
}
.right {
   width: 100px;
   height: 150px;
   border: 1px green solid;
}
  • JS基本数据类型
  • 闭包
  • 你说到了作用域链,那么你来谈一下作用域?
  • 说到了执行上下文,所以又问了执行上下文
  • 继续深入问到变量提升、词法作用域、动态作用域
  • 看一点相关的题目吧
console.log(foo);
function foo(){
    console.log("foo");
}
var foo = 1;

输出
//ƒ foo(){
//    console.log("foo");
//}
var value = 'tom';
function foo() {
    console.log(value)
}
function bar() {
    var value = 'bob';
    foo();
}
bar();

输出
//tom
function foo() {
    return function() {
        console.log(this)
    }
}
foo()(); 

输出
//window

var foo = {
    bar: function () {
        return this;
    }
}
foo.bar(); 

输出
//{bar: f}
  • http的请求方法
  • http常见状态码
  • TCP 和 UDP区别
  • 为什么浏览器的请求有两次,一次options,第二次才是真正请求?哪些场景用到
  • 模拟一个队列
  • 数组扁平化?至少两种方法实现
  • 反问

字节跳动前端二面 1h

  • 问了项目中的D3.js
  • 前端展示统计图或者一些复杂的图片是用图片好还是svg生成,这两种方式的优缺点,以及如何做取舍
  • 最近出了 Vue 3.0,有了解过它与 Vue 2.0 的区别吗?
  • Vue 3.0 的 Composition API 有了解吗?
  • Css画圆有哪些方式?
  • 如何知道某个dom元素是否在当前可视窗口呢?
  • scrollTop如何获取?
  • Css的position的常见属性,sticky用过吗?
  • Promise说一下
  • Promise.all用过吗,自己用promise封装一个Promise.all?要求每一个promise能并行执行,并且要保证最后的回调参数顺序与执行顺序一致(解释:每个 promise 封装的请求不一定会按照调用顺序得到响应,可能后面调用的比前面的要快,但一样要保证最后的顺序是按照调用顺序的)
  • 写一个题吧
const obj = {a: {b : {c : {d: 3}}}}

function getValue(obj, str, defaultValue) {}

getValue(obj, 'a.b.c.d', 1) => 3 (存在该属性返回该属性对应的值)

getValue(obj, 'a.b.c.d.e', 1) => 1 (出现错误返回传入的默认值)

改动,能处理数组

const obj_1 = {a: {b : {c : {d: [{e : 4}]}}}}

getValue(obj_1, 'a.b.c.d[0].e', 1) => 4
  • 改动前的代码实现(不一定对,望大家给个建议)
function getRightValue(obj, propertyString, defaultValue) {
  let str = propertyString.split('.');
  for(let i = 0; i < str.length; i++) {
      if(obj.hasOwnProperty(str[i])) {
          obj = obj[str[i]];
      } else {
          return defaultValue;
      }
  }
  return obj;
}

const obj = { a: {b: {c: { d: 3 }}}}

console.log(getRightValue(obj, 'a.b.c.d', 1))
  • 改动后加上了数组,所以细节要处理好,我当时卡壳了没弄出来

  • 反问

  • 别的暂时想不起来了,等想起来在补充

  • 面试官很 nice,有耐心,会给你仔细讲解出现的问题

  • 发面经回馈牛客,希望能有一个三面,小伙伴们也加油!

2020-10-15 更新

  • 果然写面经回馈牛客是对的

  • 今天下午打电话约三面了,呜呜,第一次进到三面,愿顺利!

  • 小伙伴们也加油!

2020-10-21 更新

字节跳动前端三面 35min

  • 前两次的面试感觉怎么样?
  • 通过之前的面试觉得自己还有哪些问题?
  • 说一下你认为做得好的一个项目,遇到了些什么问题?
  • 说了一个项目,然后接下来大部分时间都是围绕这个项目交流
  • 问了自己更偏向于实习还是正式,然后自己回答:优先考虑正式 offer,如果达不到正式批要求,给一个实习 offer 也可以??哈哈哈我太天真了,,,
  • 反问了具体的业务,还有自己有待提高的地方

因为自己没有实习经历,项目都是自己写的,一下子想不出什么难点,只是简单聊了一些功能实现。所以建议大家以后聊项目时,有好的实习经历,就说一下实习的项目,没有实习只有自己项目的,也要往自己项目里面添加一些亮点(难点)。面试之前也要梳理好自己的项目,不然面试一下想不起来细节就尴尬了,别像我一样,,,呜,,,

楼主今年3月份了才开始正式学习的前端(之前只知道html、css这些),所以春招也没找实习,秋招就很艰难,自己的同学中都有拿了 sp 的。之前我都不敢投字节的,因为太菜,后来颤颤巍巍投了一下,但是居然撑到三面,这就很出乎我的意料了。

  • 发面经回馈牛客,许愿自己能有 offer。也希望跟我一样还在努力的小伙伴们早日上岸!

2020/10/28 更新。已卒。。

  • HR那边很负责,已经尽力帮我争取了,但是奈何本人技术太菜,先是从正式变成实习,然后那边的面试官讨论之后觉得还是差一点,所以实习的机会也没了,另外的一个offer也不满意。就此秋招也算是画上句号了,一个失望与遗憾并存的句号。可是你说我会放弃?no,我真的喜欢前端,即使找不到工作我依然会学习它。等春招,我或许还会回来的。
#面经##校招##字节跳动##前端工程师#
全部评论
别人都在开奖,我在这发面经
1 回复
分享
发布于 2020-10-13 08:09
这是校招?
1 回复
分享
发布于 2020-10-13 08:11
阅文集团
校招火热招聘中
官网直投
你好,你是视频面试么
1 回复
分享
发布于 2020-10-27 17:38
最后一个代码题有什么解决思路吗?
点赞 回复
分享
发布于 2020-10-13 08:35
lz是啥部门啊?
点赞 回复
分享
发布于 2020-10-13 09:17
flex实现子元素垂直是啥意思?
点赞 回复
分享
发布于 2020-10-13 09:43
第一反应用:array的reduce function getValue(obj, str, defaultValue) {   const arr = str.split('.');    return arr.reduce(function(pre,current){       if(pre[current]){       return pre[current]     }else{       return defaultValue     }   },obj) };
点赞 回复
分享
发布于 2020-10-13 10:39
function getValue(obj,str,defaultValue) {     let strArr = str.split('.');     let Rep = /(\w+)\[(\d+)\]/;     for(let i = 0; i < strArr.length; i++) {         if(Rep.test(strArr[i])) {             let index = strArr[i].match(Rep)[2],target = strArr[i].match(Rep)[1];             obj = obj[target][parseInt(index)];             continue;         }         if(obj.hasOwnProperty(strArr[i])) {             obj = obj[strArr[i]];         } else {             return defaultValue;         }     }     return obj; } 按照楼主的思路写了一下 可以支持数组
点赞 回复
分享
发布于 2020-10-13 11:25
楼主,一面和二面的间隔是多久呀,一面的时候面试官会不会透露
点赞 回复
分享
发布于 2020-10-16 16:13
楼主上岸了么
点赞 回复
分享
发布于 2020-10-26 16:18
楼主你是怎样联系hr的😫😫
点赞 回复
分享
发布于 2020-11-03 13:53
加油兄弟
点赞 回复
分享
发布于 2020-11-09 16:42
最后那个数组要注意去处理多维数组,比如a[0][0].a
点赞 回复
分享
发布于 2020-11-21 17:02
同自学前端,楼主加油!希望可以多多交流~
点赞 回复
分享
发布于 2020-11-22 09:42
我也是校招被转了实习。。。不知道还有没有,许愿许愿
点赞 回复
分享
发布于 2020-12-27 10:00
然后最后楼主去了腾讯🤣
点赞 回复
分享
发布于 2021-01-17 10:16

相关推荐

投递美团等公司10个岗位
点赞 评论 收藏
转发
是我的错觉吗,感觉比中行难好多
投递中国农业银行等公司7个岗位 >
点赞 评论 收藏
转发
8 73 评论
分享
牛客网
牛客企业服务