# 面试题
# 个人总结
知所以然,不知所以然。(必须在常见的问题上,得到深入的理解和应用)
必须需要作足准备(几次的面试都很被动,打个措手不及)
深入你使用主流框架的源码来理解
# css
两种盒子模型分别说一下
如何垂直居中
flex 怎么用?常用属性有什么?
BFC 是什么?
css 选择器优先级
清除浮动
- 原因?
- 解决方案
# js
ES6 语法有什么?分别怎么用?
必考:ES 6 语法知道哪些,分别怎么用?
必考 Promise、Promise.all、Promise.race 分别怎么用?
必考:手写函数防抖和函数节流
必考:手写 AJAX
必考:这段代码里的 this 是什么?6.必考:闭包/立即执行函数是什么?
必考:什么是 JSONP,什么是 CORS,什么是跨域?8.常考: async/await 怎么用,如何捕获异常?
常考:如何实现深拷贝?
常考:如何用正则实现 trim()?
常考:不用 class 如何实现继承?用 class 又如何实现?12.常考:如何实现数组去重?
放弃:==相关题目(反着答)
送命题:手写一个 Promise
(a==1&&a==2&&a==3) 可能为 true 吗?为什么
js 垃圾回收机制
EventLoop
apply call bind
手写原生 call bind apply
defineProperty 和 Proxy 区别 ? - defineProperty 劫持数据 -> 对象做拓展 - obj 是空对象 - 单个处理 property - proxy 返回代理对象 数据劫持 -> 代理 - target 是已有的 property - 无属性名 - 全局性处理 property - 代理改,被代理也会被改 - 支持对数组的代理 - 支持对函数的代理
# DOM
1.必考:事件委托 ⒉ 曾考:用 mouse 事件写一个可拖曳的 div
# HTTP
1.必考:HTTP 状态码知道哪些?分别什么意思?2.大公司必考:HTTP 缓存有哪几种? 3.必考:GET 和 POST 的区别 4.Cookie v.s.LocalStorage v.s. SessionStorage V.S. Session
# 框架 Vue
1.必考: watch 和 computed 和 methods 区别是什么? 2.必考: Vue 有哪些生命周期钩子函数?分别有什么用? 3.必考: Vue 如何实现组件间通信? 4.必考: Vue 数据响应式怎么做到的? 5.必考:Vue.set 是做什么用的? 6.Vuex 你怎么用的? 7.VueRouter 你怎么用的?8.路由守卫是什么?
# 框架 React
1.必考:受控组件 v.S.非受控组件 ⒉ 必考: React 有哪些生命周期函数?分别有什么用?(Ajax 请求放在哪个阶段?) 3.必考:React 如何实现组件间通信? 4.必考: shouldComponentUpdate 有什么用? 5.必考:虚拟 DOM 是什么? 6.必考:什么是高阶组件? 7.React diff 的原理是什么? 8.必考 Redux 是什么?
# TypeScript
- 说一下泛类型 1.never 类型是什么? 2.TypeScript 比起 JavaScript 有什么优点?
# Webpack
1.必考:有哪些常见 loader 和 plugin,你用过哪些?2.英语题:loader 和 plugin 的区别是什么? 3.必考:如何按需加载代码? 4.必考:如何提高构建速度?5.转义出的文件过大怎么办? 上面五题请看这个不错的参考: https://zhuanlan.zhihu.com/p/44438844
# 安全
什么是 XSS ?
解决:
什么是 CSRF
解决:
# Promise