注意事项
-
『很多』公司面试题都是常年不更新的,『可能』你搜该公司往年的面经,就能猜到今年的题目。
-
很多面试官的知识也是常年不更新的,你不要答得太『偏激』,应该了解大众的想法。
-
本押题主要强调答题思路,具体答案都可以搜到(不要用百度)
技巧
-
遇到比较抽象的题目就具体化(举例),遇到比较具体的题目就抽象化(阐述)
-
抽象题目搜知乎,代码题目搜 Stackoverflow 或博客
-
『XXX 的原理』这种题目一般都是说源代码思路,但你不需要看源码,直接看别人的博客即可(再次强调,不要用百度)
HTML
-
必考:你是如何理解 HTML 语义化的?
简单来说:就是用正确的标签做正确的事。比如:
头部:header 导航:nav 主体内容:main 标题:h1 ~ h6 段落:p 侧边栏:aside 页脚:footer
从历史讲起,大家知道前端也是这两年才发展起来的,以前的前端都是写写展示页,所以其实很早以前,是没有专门的前端的,需要写网页了,就让后端看看顺手写了,所以那时候的网页,都是一堆Table 或者 满屏幕的div标签。不要说给别人看自己的HTML结构了,估计自己也看的够累。而且对于搜索引擎和设备解析来说,非常的不友好。
发展路线:后端的table标签–>美工人员使用div+css布局–>讲专业的前端会使用正确的标签进行页面开发。使用HTML语义化的好处:
1.标签语义化有助于构架良好的HTML结构,有利于搜索引擎的建立索引、有助于爬虫抓取更多的有效信息.简单来说,试想在H1标签中匹配到的关键词和在div中匹配到的关键词搜索引擎会吧那个结果放在前面。
2.有利于不同设备的解析(屏幕阅读器,盲人阅读器等)满是div的页面这些设备如何区分那些是主要内容优先阅读?
3.有利于构建清晰的机构,有利于团队的开发、维护。
4.提升用户体验,例如title、alt可用于解释名词或解释图片信息。
5.网页加载慢导致CSS文件还未加载时(没有CSS),页面仍然清晰、可读、好看。 -
meta viewport 是做什么用的,怎么写?
-
你用过哪些 HTML 5 标签?
-
H5 是什么?
CSS
===
- 必考:两种盒模型分别说一下。
- 必考:如何垂直居中?
- 必考:flex 怎么用,常用属性有哪些?
- 必考:BFC 是什么?
- CSS 选择器优先级
- 清除浮动说一下
原生 JS
- 必考:ES 6 语法知道哪些,分别怎么用?
- 必考 Promise、Promise.all、Promise.race 分别怎么用?
- 必考:手写函数防抖和函数节流
- 必考:手写AJAX
- 必考:这段代码里的 this 是什么?
- 必考:闭包/立即执行函数是什么?
- 必考:什么是 JSONP,什么是 CORS,什么是跨域?
- 常考:async/await 怎么用,如何捕获异常?
- 常考:如何实现深拷贝?
- 常考:如何用正则实现 trim()?
- 常考:不用 class 如何实现继承?用 class 又如何实现?
- 常考:如何实现数组去重?
- 放弃:== 相关题目(反着答)
- 送命题:手写一个 Promise
DOM
- 必考:事件委托
- 曾考:用 mouse 事件写一个可拖曳的 div
HTTP
- 必考:HTTP 状态码知道哪些?分别什么意思?
- 大公司必考:HTTP 缓存有哪几种?
- 必考:GET 和 POST 的区别
- Cookie V.S. LocalStorage V.S. SessionStorage V.S. Session
框架 Vue
-
必考:watch 和 computed 和 methods 区别是什么?
-
必考:Vue 有哪些生命周期钩子函数?分别有什么用?
-
必考:Vue 如何实现组件间通信?
-
必考:Vue 数据响应式怎么做到的?
-
必考:Vue.set 是做什么用的?
-
必考:vue 双向绑定原理?
使用 Object.defineProperty 或者 Proxy 实现数据拦截,在 getter 存储值时,在 setter 时更新值,并且更新 UI。 -
Vuex 你怎么用的?
-
VueRouter 你怎么用的?
-
路由守卫是什么?
框架 React
- 必考:受控组件 V.S. 非受控组件
- 必考:React 有哪些生命周期函数?分别有什么用?(Ajax 请求放在哪个阶段?)
- 必考:React 如何实现组件间通信?
- 必考:shouldComponentUpdate 有什么用?
- 必考:虚拟 DOM 是什么?
- 必考:什么是高阶组件?
- React diff 的原理是什么?
- 必考 Redux 是什么?
- connect 的原理是什么?
TypeScript
- never 类型是什么?
- TypeScript 比起 JavaScript 有什么优点?
Webpack
- 必考:有哪些常见 loader 和 plugin,你用过哪些?
- 英语题:loader 和 plugin 的区别是什么?
- 必考:如何按需加载代码?
- 必考:如何提高构建速度?
- 转义出的文件过大怎么办?
上面五题请看这个不错的参考:https://zhuanlan.zhihu.com/p/44438844
安全
- 必考:什么是 XSS?如何预防?
- 必考:什么是 CSRF?如何预防?
开放题目
- 必考:你遇到最难的问题是怎样的?
- 你在团队的突出贡献是什么?
- 最近在关注什么新技术
- 有没有看什么源码,看了后有什么记忆深刻的地方,有什么收获
刁钻题目
- 代码
- 代码
(a ==1 && a== 2 && a==3)
可能为 true 吗?
可以能
超纲题
- JS 垃圾回收机制
- Eventloop 说一下
个性化题目
- PWA
- echarts.js / d3.js
- three.js
- flutter
- SSR