字节跳动前端一二三+HR面 面经

一面面试官是个阳光小哥哥,看上去很有亲切感

问题如下:

  讲一下TCP为什么比UDP安全的多(TCP 头部、状态机、ARQ 协议、滑动窗口、拥塞处理)

  强制缓存和协商缓存

  讲一下浏览器渲染的过程,生成渲染树以后是先GPU 绘制还是先合成图层?(先GPU绘制)讲一下async和defer的作用(我defer还答错了),HTML Dom结构完成时触发哪个事件(domcententload)

  HTTPS的加密技术是怎么来实现的(口述一下对称加密和非对称加密)

  知道preload和prefetch吗

  Vue3的新特性有哪些,composition api有了解过吗(借鉴hooks)

  了解过服务器渲染吗,用过吗,怎么用的(我从Vue角度去回答的)

  算法:爬楼梯 每次爬 1 或 2 个台阶,到 n 级台阶有几种方法?(斐波那契 我拿dp数组写的)

  改为每次爬n阶怎么办(以无限取的背包进行dp),用dfs呢?(我这里预判性回答可以使用数组记录重复路径进行优化)

  优化的时候怎么记录呢(Map或者2进制),2进制怎么算一共有多少种路径?2^n

提问环节:

  咱部门具体有哪些业务呢

  我之前哪里答的有问题呢(defer)

  这里又开始面试官又开始提问:

  了解过小程序吗,知道小程序的原理吗,开发过小程序吗?用什么开发的

  RN了解过吗,RN和原生开发的区别在哪里?和小程序呢?和webview有什么区别

 

半小时后HR小姐姐来电话告知通过,问之前联系的时候为啥没加微信(怕中途挂了丢人),约后天二面

 

二面面试官有点像那种无情判官,说话也挺冷漠的

问题如下:

  Vue模板是怎么在浏览器中运行的(AST),AST怎么来处理v-if呢?(猜着答的)

  事件代理是什么?知道哪些事件无法进行冒泡吗?(event.target,UI事件和鼠标移动事件)

  了解过fontIcon不(我寻思不是iconfont吗)

  了解过小程序吗,知道小程序的原理吗(这里提到JS的运行环境),你了解其他运行环境吗(IOS,安卓,node.js,各种浏览器引擎)

  描述下面代码的输出

async function async1() {
console.log('async1 start');
await async2(); console.log('async1 end'); } async function async2() { console.log('async2'); } console.log('script start'); setTimeout(function() { console.log('setTimeout'); }, 0); async1(); new Promise(function(resolve) { console.log('promise1'); resolve(); }).then(function() { console.log('promise2'); }); console.log('script end');
//script start=>async1 start=>async2=>promise1=>script end=>async1 end=>promise2=>setTimeout

  算法:斜45度打印二维矩阵

  input = [[ 1, 2, 3, 4, 5],
           [ 6, 7, 8, 9, 10],
           [11, 12, 13, 14, 15]]
  output = 1, 2, 6, 3, 7, 11, 4, 8, 12, 5, 9, 13, 10, 14, 15

  (我用的遍历数组然后每个未输出的节点向左下搜索)

  手写题:请实现DOM2JSON一个函数,可以把一个DOM节点输出JSON的格式

function dom2JSON(ele) {
    let res = {tag: ele.tagName, children = []};
    for(let item of ele.childNodes) {
        res.children.push(dom2JSON(item));
    }
    return res;
}

提问环节:

  前端除了https之外还可以使用哪些加密方法

  我前面哪个地方犯错了(拒绝回答)

 

一小时后HR小姐姐来电话告知通过,约两小时后三面

 

三面面试官感觉挺年轻的,正常风格

因为这个三面是我请求早面的,所以对方可能是临时抽时间过来面的,也晚到了5分钟,开场我先进行了道歉,说明了原因

问题如下:

  你是怎么接触前端的,为什么要做前端

  之前都是怎么学习前端知识的

  你做过的内容中最有成就感的是哪个,讲一下这个东西的难点在哪

  自己的优点和缺点有哪些

  阅读过Vue源码吗,能讲一下NextTick吗

  手写NexTick

  之前大学的经历

提问环节:

  咱部门的技术栈是什么

  作为研发可以向上级提出新产品方案吗

  对我的建议

 

一个多小时后HR小姐姐来电话告知通过,约第二天HR面

 

HR面是电话面试,对方是个声音很好听的大姐姐

问题如下:

  学校的经历

  对自己的评价

  打工时的经历

  薪资期望

提问:

  部门情况,公司重视程度,升降机制、提薪机制

上一篇:ES6系列--【事件循环 EventLoop(Promise,setTimeOut,async/await执行顺序)】


下一篇:Vue实现简单的列表金额计算效果(简易购物车)