前端面试要准备的内容
记录一些前端面试过程中可能会问到的问题
基础相关
js原型链继承
- 参考https://www.jianshu.com/p/6c99d3678283
function Person () {
}
function Student () {
Person.call(this)
}
Student.prototype = new Person()
- 主要考虑要同时继承原型上的方法和构造函数上的方法
eventloop
- 参考 http://www.ruanyifeng.com/blog/2013/10/event_loop.html
- 主线程 和 eventloop线程
- 宏任务 和 微任务
- 宏任务优先级:主代码块 > setImmediate > MessageChannel > setTimeout / setInterval
- 微任务优先级:process.nextTick > Promise > MutationObserver
- 顺序 宏任务主代码 -> 微任务(promise)-> 宏任务 (settimeout回调)
http,https
- http参考 http://www.ruanyifeng.com/blog/2016/08/http.html
- https加密过程
- C请求公钥
- S发送公钥
- C验证,用公钥加密
对称加密的算法和密钥
- S私钥解密,对称密钥加密
确认信息
- 开始请求内容
nextTick,setImmediate, Settimeout Promise优先级
理解上可以参考eventloop中的内容
console.log(1);
setTimeout(() => {
console.log(2);
Promise.resolve().then(data => {
console.log(3);
});
});
new Promise(resolve => {
resolve();
console.log(4);
}).then(() => {
console.log(5);
setTimeout(() => {
console.log(6);
});
}).then(() => {
console.log(7);
});
console.log(8);
BFC
- Block Formatting Context块级格式化上下文,独立布局环境,不受外界影响,margin不重叠
- float的值不是none
- position的值不是static或者relative
- display的值是inline-block、table-cell、flex、table-caption或者inline-flex
- overflow的值不是visible
- 参考 https://blog.csdn.net/sinat_36422236/article/details/88763187
import和requre的区别
- import es6模块规范,require是CommonJs的语法(AMD引入)
- export default , module.exports =
JSONP原理
js
- 数字千分位处理(正则,非正则)
'12312123.00'.replace(/(\d)(?=(\d{3})+\.)/g, '$1,')
- 最长公共子序列
- 给定一个数组,一个期望值,找到数组中两个相加等于期望值
- 节流函数
- [1,2,3].map(parseInt)
- 快速排序
- js动画setTimeout和requestAnimationFrame
css
- 垂直居中
- line-height, table-cell, absolute - margin\transform, flex, grid
- 上中下布局
- flex, minHeight, calc, grid
框架相关
- Vue双向绑定原理
- Vue相关优化内容
- 框架层面,加载、拆包
- 同步接口请求,后延无需的请求
- 代码层面,key,functional组件,v-once
- 框架层面,加载、拆包
- Vue中nextTick的实现原理
- Vue生命周期中各方法都做了些什么
安全相关
- XSS - Cross Site Scripting
- CSRF - Cross—Site Request Forgery
- 验证referer
- 添加动态token
- SameSite Cookie
SameSite=Lax
其他
- 最有成就感的项目
- 近期有在了解哪些新技术
- serverless、小程序、webassembly、typescript
- PWA(Service worker、Cache api、Push&Notification、Web App Manifest等)
- 问题