字节商业变现前端一面+二面+三面(offer审批中)

字节效率真高

一面(4.14,40+分钟)

面试官是什么神仙级别呀,太棒了吧!!!

  1. new Promise(function(resolve) {
    for(var i=0 ; i < 10 ; i++) {
     resolve(i);
    }
    }).then(function(i) {
    console.log(i);
    });
    new Promise(function(resolve) {
    for(var i=0 ; i < 10 ; i++) {
     function a() {
          resolve(i);
     }
    }
    a();
    }).then(function(i) {
    console.log(i);
    });
    // 上面打印 0
    // 下面打印 10(因为使用 var 定义是函数作用域,不会为每一个 i 保存一块内存)
    // 这里一开始说错了,完全反过来,面试官还引导我说定义了一个函数而不是立即执行,太幸运了
  2. 0.1+0.2

  3. add(a, b, precision)

  4. DOM事件机制
    target/currentTarget

  5. tcp三次握手、四次挥手

  6. new Function()过程

  7. 编程实现
    还原扁平的树结构,结构如下,id表示当前节点id,parentId表示其父节点id。
    const listTree = [
    { id: 1, parentId: 2 },
    { id: 2, parentId: 0 },
    { id: 3, parentId: 4 },
    { id: 4, parentId: 0 },
    { id: 5, parentId: 4 },
    { id: 6, parentId: 2 },
    { id: 7, parentId: 2 },
    { id: 8, parentId: 3 },
    ]

二面(4.16,1h左右)

  1. 为什么 JS 的基本数据类型能够拥有方法,为什么对基本数据类型添加属性或者方法不生效
    let str = 'test'
    let str2 = str.substring(2)
    console.log(str2) // st
    const me='bytedance';
    me.age=9;
    console.log(me.age); // undefined
    对于基本类型,在进行一些方法或者属性的操作时,JS 会对其先进行装箱之后调用对应的方法,在 JS 引擎中的操作为
  • 在内存中创建一个临时的对应类型实例(比如 String 实例)
  • 在实例上调用指定的方法并返回结果
  • 销毁这个临时的实例
  1. 看输出
    // Q1
    var a = 1;
    function print () {
    console.log(this.a)
    }
    print() // 1
    // Q2
    const obj = {
    a: 2,
    print: function () { console.log(this.a) }
    }
    obj.print(); // 2
    // Q3
    function Person () {
    this.a = 8
    this.print = function () {console.log(this.a)}
    return {a: 9}
    }
    const p = new Person()
    console.log(p.a) // 9
    console.log(p.print()) // 报错,返回的对象中没有 print 方法
    // Q4
    'use strict';
    var a = 1;
    function print () {
    console.log(this.a)
    }
    print() // 报错 不能给 undefined 添加属性
  2. 期间聊了关于 symbol、BigInt、==、===
    (录音没有弄好,记不下来)
  3. 写题,一道插花的贪心题
  4. 写 bind 方法

    这一面很多问题没有回答上来,录音没有弄好,但是问题大致是上面这些,还有一些 react 的

三面(4.19,50+分钟)

1、为什么选择成为一名前端工程师

  • 老师实验室里接触到前端
  • 开发相关官网
  • 喜欢所见所得

2、平时如何学习前端?

  • 在 MDN 学习基础
  • 书籍
    • 红宝书
    • 你不知道的JS
  • B站视频
  • React 官网学习、B站学习
  • 阮一峰 ES6
  • Google、stackoverflow 搜索问题

3、 ES6 的模板字符串?
实现 template(str, data)

let str  =  'my name is {{name}}, age is {{age}}'
let data = {name: 'tom', age: 16 }
function template(str, data) {
    let arr = [];
    let reg = /[\{]{2}([\w]+)[\}]{2}/g;
    return str.replace(reg, function(item) {
        console.log(item);
        const _item = item.slice(2, item.length - 2);
        console.log(_item);
        if (data[_item]) {
            return data[_item]; // 
        } else {
            return "undefined";
        }
    });
}

4、箭头函数有哪些不适用的场景?

  • 构造函数
  • this 绑定
  • 与 this 相关都需要注意
    5、HTTP 常用响应码介绍
    1**:表示服务器收到,需要进一步操作
    2**:表示响应成功
    200: ok
    3**:表示重定向(304表示资源未改变)
    301: 永久重定向
    302:临时重定向
    304:资源未更改(在缓存中使用)
    4**:表示客户端发生错误
    400:客户端错误
    401:身份认证错误
    403:资源不允许访问
    404:资源未找到
    5**:表示服务器发生错误
    500:服务器内部错误

6、TCP 和 UDP 区别
TCP 可靠,面向链接, 1对1, 字节流 HTTP
UDP 不可靠,尽全量交付 1对1 1对多,面向bao'w DNS

7、HTTPS过程 ?
http + ssl
对称加密
非对称加密
CA机构

8、实现一个自己 axois()

  • 用 Promise 封装 xhr 写了一下

9、fetch 和 xhr 区别?

  • fetch返回 promise
  • xhr 有 abort
  • fetch 需要调用 json text方法才能获取数据,链式;

10、常用的设计模式介绍? 实现一个发布订阅

  • 单例
  • 发布订阅/观察者
  • 代理

面完几分钟 HR 打电话约了晚上9点HR面试

hr 面试就是聊天,然后就给了通过,正在offer审批中

#面经##前端##字节跳动##实习#
全部评论
楼主你好,请问你是实习、校招还是社招?
点赞 回复 分享
发布于 2021-04-14 16:09
楼主你好 请问你是什么时候投的简历啊 还有什么途径投的啊 方便告知一下吗 祝你早日入职
点赞 回复 分享
发布于 2021-04-14 17:12
看了第一题 明明是要打印10 啊 我看了半天 复制到控制台确实是10啊 老弟
点赞 回复 分享
发布于 2021-04-14 21:24
感觉很少问到项目呀
点赞 回复 分享
发布于 2021-04-20 10:48
楼主base是哪里啊,审批结束了吗
点赞 回复 分享
发布于 2021-05-05 20:30
去了吗
点赞 回复 分享
发布于 2021-07-28 19:48

相关推荐

AI牛可乐:哇,听起来你遇到了什么挑战呢!🐮牛可乐在这里,虽然小,但是勇敢又聪明,想听听你的具体情况哦!如果你愿意的话,可以点击我的头像给我私信,我们可以一起想办法应对挑战,好不好呀?🌟🎉
点赞 评论 收藏
分享
10-22 19:18
上海大学 后端
jopajhhdjwnqk:水印都叠杀人书了
点赞 评论 收藏
分享
oppo 应用软开 22*15+0.5*12
拿到了ssp完美:真的坎坷,但是你至少拿到这么多offer了!
点赞 评论 收藏
分享
评论
2
23
分享
牛客网
牛客企业服务