字节前端一面(挂掉了)

面试题目回忆

  1. 简单介绍自己(自我介绍)
  2. 你为什么选择前端作为你的职业生涯/发展方向?什么时候开始学前端的?项目经历?
  3. TCP/IP的四层协议(名字)
  4. HTTP协议工作的协议层?TCP、UDP工作在哪一层,且它们之间的区别(展开问)
  5. TCP的拥塞控制
  6. HTTP的状态码分类(5类,功能)301、302、401
  7. css中盒模型box-sizing中content-box和border-box的区别(这个是忘记了这个点,考的是普通盒模型和怪异盒模型)
  8. flex布局的理解
  9. flex各种属性(flex-basic控制什么,作用)需要加强
  10. 写结果题,考的是this指向,未答好
window.name = 'ByteDance';
function A () {
   this.name = 123;
}
A.prototype.getA = function(){
    console.log(this);
    return this.name + 1;
}
let a = new A();
let funcA = a.getA;
funcA();
  1. js当中0.1+0.2的结果是什么,为什么不是0.3?
  2. cookie和session在前端中的作用
  3. http是无状态协议,服务端如何做到对客户端的标识
  4. 实现一个函数,可以满足sum(x, y)和sum(x)(y)两种调用方式,
    如sum(1, 2) = 3 , sum(1)(2) = 3
    (附上我勉强能过的答案)
var sum = function(x, y){
    return (y === undefined)? function(z){return x + z}: x + y;
}//应该用闭包来做,我这个勉强算是个闭包吧…
  1. 对现在的框架的认识(Angular、React、Vue)
  2. Promise执行顺序
setTimeout(_ => console.log(1))
new Promise(resolve => {
  resolve()
  console.log(2)
}).then(_ => {
  setTimeout(_ => console.log(3))
  console.log(4)
  Promise.resolve().then(_ => {
    console.log(5)
  }).then(_ => {
    Promise.resolve().then(_ => {
      console.log(6)
    })
  })
})
console.log(7)//这题我答的不太可,Promise没接触过
  1. setTimeout和Promise的顺序
  2. 发布订阅模式以及是否了解 EventEmitter (这个我不太了解,所以面试官给了下一题)
  3. 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。
    (abcabcbb: 3, pwwkew: 3, aaa: 1)(突然卡壳了,只有思路写不出来,换了C++还写不出来,囧死)
  4. 自己的学习方式(自学方式)
    面试官给出的建议:想深耕前端,flex是基础,一些框架尽量去接触(这个时间久远没有说好)、js语言底层的一些东西(setTimeout),基本功

总结:与js相关的知识遗忘较大,未能说出自己对框架的理解,编码能力待提高,flex是个重点,需要继续加油

你可能感兴趣的:(字节前端一面(挂掉了))