部分面试过程


部分面试过程

字节篇

0817 14:00 一面 60 分钟

  • vue 原理 , 手写实现数据劫持 (里面有坑) (代码)
  • 问了数据劫持,收集依赖的过程 ,实现的方式
  • get post 区别 长度限制,请求的次数,谁限制了长度
  • 文件上传的字符编码类型,之间的区别以及为什么会这样,form 表单默认是谁
  • 挖项目,为什么要这样做,解决了啥问题
  • 几个常见状态码 304 引出浏览器强缓存和协商缓存
  • 谈一个设计散点图的思路,设计,实现,优化方面
  • 聊了下他们的开发流程,用到的技术
  • gg

0831 16:00 一面 60 分钟

  • css 盒模型哪些,区别
  • css 实现一个三角形
  • let var 问你输出什么
  • js 数组哪些方法 写一个 reduce(没写)
  • arr = Array.from({ length: 2 }).fill({ a: 1 }) => [{a:1},{a:1}]
  • promise.then().then() promise.catch().then() ok 不? promise 其他东西
  • 实现一个 match 函数 判断括号是否匹配 ([{}{}()]) (代码)
  • 反转链表 (代码)
  • 写一个深拷贝 (代码)
  • 聊了下为什么没走校招,机会蛮大的
  • 聊了下他的工作,然后加了个微信,可以给我讲点经验

0902 13:00 二面 80 分钟

  • js 获取元素在页面中的位置 (代码)
  • css 动画 ,js 怎么实现, aniationRequestFrame
  • 找数组中两个元素和等于 target 的数组 (代码)
  • 找数组中几个元素和等于 target 的数组 (代码)
  • 介绍防抖节流 手写防抖 ,里面用到 function.call (代码)
  • 介绍 call 然后区别 call apply bind
  • 实现一个 call
  • 实现一个 new
  • 什么是同源政策,跨域哪几种 ?具体实现 ?非常非常详细
  • http2 新特性 实现的原理
  • 反向代理 正向代理区别
  • 浏览器缓存
  • vuex 详细介绍
  • react 和 vue 区别
  • ts 优点
  • ts 编译过程,扯了点编译原理
  • 移动端适配方法,怎么实现响应式,原理
  • 设计一个 tip 思路,考虑优化 ,扩展
  • 实现一个单例模式 (代码)
  • 很流畅
  • 了解到字节前端岗位进去后,根据部门需要以及个人兴趣爱好分配具体部门

0903 14:30 三面 50 分钟

  • 解释 什么是面向对象 ,要点特性 ,区别
  • 常用的数据结构,特性 ,区别
  • 实现双向链表 ,实现一个插入节点的方法 (代码)
  • webpack 重要配置 ,loader 和 plugins 区别 ,优化
  • n 级台阶的几种路劲 (代码) 思路错了 (其实就一个递归)
  • 心态崩了 ,面试官脸色不大好看
  • 七层网络模型
  • tcp udp 区别
  • 浏览器缓存
  • keep-alive 原理(自己傻逼了,猜也能猜出来,说了个没深入了解)
  • 实习过程中自己的不足
  • 英语四六级
  • 学习方法过程
  • n 皇后 没写 换题了
  • 返回 n 以内的质数数组 (我想着优化,判断质数条件没写完) 到时间了
  • 没啥聊的了
  • 有点压力面的感觉 三面到此结束

百度篇

0811 一面

  • 一个元素一个按钮,元素垂直居中. 点击按钮后,元素一秒后,水平左右移动 100px 旋转 90 度 动画持续 100ms (代码)
  • 实现一个函数 , 判断对象中的属性来自哪一个 原型链对象 (代码)
  • div 上下布局 底部固定高度 ,顶部自适应 (代码)
  • position 值 区别 以及黏性定位 : sticky
  • 判断一个数组的方法 Array.isArray() / Object.prototype.toString.call() 注意 typeof [] == ‘object’
  • 事件绑定的方法, 优点 , html 中 onclick / js 中 addEventListener (多个顺序执行) 和 onEvetnt (多个后者覆盖前者)
  • 事件传递顺序: 父级捕获-> 自身绑定顺序->父级冒泡
  • http 缓存相关 200 304 区别 200 返回 max-age 发现失效 如果有 Last-Modified,则再次向 web 服务器请求时带上头 If-Modified-Since ,服务器对比 If-Modified-Since 和文件最后修改时间 返回 200 或者 304
  • 网络请求放在什么阶段? / 子组件? 父组件?
  • js 中 this 指向问题, 显示修改 this 方式以及区别
  • connection:keep-alive 介绍
  • 前端性能优化 / 打包方面的优化
  • linux 查看网络以及端口占用
  • linux 杀掉进程

注意点(体现程序员的专业和严谨)

  • 知识点考察

    • 回答问题,先委婉简短地说出重点,但是要全部概括,不能漏,然后再深入详细描述(比如七层网络模型)
    • 让你介绍某个知识点时, 先介绍 ,再谈作用,再说优点,再说缺点,然后怎么弥补缺点(比如 jsonp 跨域)
    • 实在不会的问题,让面试官换一个,或者问到你的痛点,直接说没去深入了解,赶紧换个题,保证心态。(比如 react diff 算法)
    • 用词准备,描述到位,注意说法专业 (比如 数据库关系模型 能说 N 对 N ,就别说多对多)
  • 编程题

    • 编码题保证编码规范,(缩进,空格,尾随分号)
    • 算法题要让他看出你有程序员的思维 (先解决 ,再优化)
    • 新语法啥的都用上 (专业,学以致用,要理解,别一问只会用,不知道原理)
    • 写注释理清思考的方向 (思路清晰)
  • 开放性问题

    • 问你程序员鄙视链怎么看
    • 程序员 35 老龄化危机怎么看
    • 怎么学习的 (专业性网站,影响力大的书籍,大牛博客,《c++,从入门到放弃》)
    • 职业规划
    • 怎么看待加班
  • 其他杂项

    • 算法(leetcode 剑指 offer)算法可视化
    • linux 命令 (网络 ip,端口占用,文件查找 ,vim 编辑器)
    • 浏览器原理 (进程 和 线程 通讯)
    • js 机制 (预解析,单线程,事件循环 ,运算符优先级)
    • 还有一些奇葩 bug-
    • 实习的开发流程和操作规范

Author: yanstars
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source yanstars !
  TOC