面试题积累

面试题收集

update on:2020-01-09

CSS

  1. 怎么让一个 div 水平垂直居中
  2. 介绍下 BFC 及其应用
  3. 如何用 css 或 js 实现多行文本溢出省略效果,考虑兼容性
  4. 如何覆盖important的内联width属性
  5. 分析比较 opacity: 0、visibility: hidden、display: none 优劣和适用场景
  6. 行基线的确定以及 vertical-align

JS

  1. [‘1’, ‘2’, ‘3’].map(parseInt) what & why?
  2. 什么是防抖和节流?有什么区别?如何实现?
  3. 介绍下 Set、Map、WeakSet 和 WeakMap 的区别?
  4. ES5/ES6 的继承除了写法以外还有什么区别?
  5. 判断数组的几种方式?
  6. 讲讲模块化发展?
  7. 全局作用域中,用 const 和 let 声明的变量不在 window 上,那到底在哪里?如何去获取?
  8. 具名函数表达式(NFE)函数名变量的作用域?
  9. 类数组对象的 push 行为?
  10. 连续赋值的运算符优先级?
  11. 对象的属性 key 值类型?
  12. 自有属性、继承属性、静态方法、实例方法?
  13. 变量的声明提前特性?
  14. 隐式类型转换?
  15. async 和 await?
  16. call和apply的区别是什么,哪个性能更好一些?
  17. 箭头函数和普通函数的区别?
  18. 为什么 for 循环嵌套顺序会影响性能?
  19. 说说 es5 的继承方式

异步

  1. setTimeout、Promise、Async/Await 的区别
  2. 异步的解决方案
  3. 模拟实现一个 Promise.finally
  4. 模拟实现一个 Promise.all
  5. 模拟实现一个 Promise.race
  6. 模拟实现一个 Promise

设计模式

  1. 观察者模式 VS 发布-订阅模式

网络

  1. 谈谈TCP的三次握手和四次挥手
  2. 介绍下 http 1.0 1.1 2.0 协议的区别
  3. 谈谈 HTTP 状态码
  4. 讲讲强缓存和协商缓存,F5 和 Ctrl + F5 的区别
  5. 讲讲 http 报文中常见头部字段的含义
  6. 讲讲同源限制和 COPS 跨域资源共享解决方案
  7. 讲讲 XSS、sCSRF 、中间人攻击及预防方案
  8. 讲讲 HTTPS
  9. 讲讲前端加密和鉴权

手写

  1. 模拟实现一个 new 操作符功能
  2. 模拟实现 call 和 apply
  3. 模拟实现 bind
  4. 手写防抖函数debounce和节流函数throttle
  5. 手写实现深拷贝
  6. 扩展Object.assign实现深拷贝

浏览器

  1. 浏览器渲染过程
  2. 讲讲 EventLoop 以及任务源
  3. 内存模型以及垃圾回收机制
  4. 内存泄漏概念、监控和分析
  5. 本地存储(cookie, localStorage, sessionStorage)

综合

  1. 讲讲浏览器从输入 url 后都发生了什么
  2. 做过哪些项目,负责什么模块,做了哪些体验优化

框架

  1. 谈谈数据响应式系统

算法

  1. 将数组扁平化处理
  2. 排序算法
请叫我大苏 wechat
您的支持将鼓励我继续创作!