面试题收集
update on:2020-01-09
CSS
- 怎么让一个 div 水平垂直居中
- 介绍下 BFC 及其应用
- 如何用 css 或 js 实现多行文本溢出省略效果,考虑兼容性
- 如何覆盖important的内联width属性
- 分析比较 opacity: 0、visibility: hidden、display: none 优劣和适用场景
- 行基线的确定以及 vertical-align
JS
- [‘1’, ‘2’, ‘3’].map(parseInt) what & why?
- 什么是防抖和节流?有什么区别?如何实现?
- 介绍下 Set、Map、WeakSet 和 WeakMap 的区别?
- ES5/ES6 的继承除了写法以外还有什么区别?
- 判断数组的几种方式?
- 讲讲模块化发展?
- 全局作用域中,用 const 和 let 声明的变量不在 window 上,那到底在哪里?如何去获取?
- 具名函数表达式(NFE)函数名变量的作用域?
- 类数组对象的 push 行为?
- 连续赋值的运算符优先级?
- 对象的属性 key 值类型?
- 自有属性、继承属性、静态方法、实例方法?
- 变量的声明提前特性?
- 隐式类型转换?
- async 和 await?
- call和apply的区别是什么,哪个性能更好一些?
- 箭头函数和普通函数的区别?
- 为什么 for 循环嵌套顺序会影响性能?
- 说说 es5 的继承方式
异步
- setTimeout、Promise、Async/Await 的区别
- 异步的解决方案
- 模拟实现一个 Promise.finally
- 模拟实现一个 Promise.all
- 模拟实现一个 Promise.race
- 模拟实现一个 Promise
设计模式
网络
- 谈谈TCP的三次握手和四次挥手
- 介绍下 http 1.0 1.1 2.0 协议的区别
- 谈谈 HTTP 状态码
- 讲讲强缓存和协商缓存,F5 和 Ctrl + F5 的区别
- 讲讲 http 报文中常见头部字段的含义
- 讲讲同源限制和 COPS 跨域资源共享解决方案
- 讲讲 XSS、sCSRF 、中间人攻击及预防方案
- 讲讲 HTTPS
- 讲讲前端加密和鉴权
手写
- 模拟实现一个 new 操作符功能
- 模拟实现 call 和 apply
- 模拟实现 bind
- 手写防抖函数debounce和节流函数throttle
- 手写实现深拷贝
- 扩展Object.assign实现深拷贝
浏览器
综合
- 讲讲浏览器从输入 url 后都发生了什么
- 做过哪些项目,负责什么模块,做了哪些体验优化
框架
算法
- 将数组扁平化处理
- 排序算法