最近面试遇到的面试题

246 阅读1分钟

网络相关

  1. 在浏览器地址栏输入地址后回车后都作了些什么呢?
  2. TCP三次握手、四次挥手
  3. HTTP缓存,什么是强缓存,什么是协商缓存
  4. HTTPS是怎么保证安全性的
  5. 你都知道哪些常见的http code。301和302有什么区别?
  6. 什么是跨域,如何解决跨域问题
  7. jsonp的原理。手写一个jsonp的方法
  8. http2有哪些新特性
  9. 有哪些常见的网络攻击方式,如何避免?
  10. 有哪些优化手段?code split,tree shaking,懒加载,按需加载,CDN等

CSS

  1. BFC是什么,有什么特点,如何触发BFC?
  2. 什么是重绘和重排,什么会引起重绘和重排,如何减少重排
  3. 什么是层叠上下文,如何确定元素的层叠顺序
  4. 讲讲flex布局,flex: 1 1 auto 代表什么?

JS

  1. 实现Function.prototype.bind的polyfill
  2. 闭包,作用域,变量对象,声明提升,this
  3. 高阶函数,节流去抖,库里化,compose
  4. promise,async await
  5. 事件循环,给一段代码,判断输出顺序
  6. Set, Map, WeakSet, WeakMap。区别是什么?
  7. 如何使用原型实现继承
  8. 是否使用过node。如果实战经验多,会问更深的。
  9. 深拷贝

算法

  1. 数组扁平化
  2. 计算数组深度,如:[1,2]深度为1, [1, [2,3]]深度为2
  3. 二分查找
  4. 快排
  5. 二叉树前中后遍历

Vue

  1. Vue数据绑定原理
  2. Vuex的mutation和action的区别
  3. watch和computed的区别,它们各自的应用场景是什么?
  4. 组件通信方式都有哪些?
  5. 如何实现Tree组件(递归组件)