持续更新中。。。
JS
参考链接:
setTimeout实现的原理
浏览器端的垃圾回收
数据类型,不同数据类型在内存中怎么存储的
闭包在内存中是怎么存储的
什么情况下内存栈溢出
Array.reduce实现(小米\字节)
Array.prototype.reduce = function(cb, initVal) {
let result = initVal;
let i = 0;
if (typeof initVal === 'undefined') {
result = this[0]
i++;
}
while (i < this.length) {
cb(result, this[i], i, this)
i++;
}
return result;
}
IIFE(立即调用函数表达式)
立即调用函数的输出
跨域
参考链接:www.imooc.com/article/291…
事件冒泡和事件捕获
混合开发原理和js bridge原理
为什么使用混合开发,它有什么优缺点
防抖和节流,分别在什么场景下使用
- 防抖:防止用户抖动,也就是短时间内连续触发只有一次是有效的
- 节流:节省流量,也就是短时间内多次触发要节省流量减少触发事件的执行次数
参考链接:浅谈 JS 防抖和节流
实现Promise.all(字节)
发布订阅模式和观察者模式的区别(百度、美团)
Nodejs
装饰器的原理和实现
参考链接:
Promise
参考链接:juejin.cn/post/694531… 大神手撸Promise并详细讲解,非常棒,我看了好几遍
事件循环(小米,美团)
参考链接:
- nodejs.cn/learn/the-n…
- www.cnblogs.com/momo798/p/1…
- zhuanlan.zhihu.com/p/87684858
- MDN:并发模型与事件循环developer.mozilla.org/zh-CN/docs/…
浏览器和nodejs的事件循环的区别(小米)
参考链接:
nodejs的垃圾收集算法(小米)
网络
HTTP2的优缺点,HTTP3是怎么解决这些缺点的(美团)
样式
常做的自适应布局操作有哪些(字节)
- rem
- flex
- @media
- vh,vw
flex了解吗,flex有哪些属性(高德出行)
实现水平居中的方式和上下文限制(香格里拉)
样式 | 上下文 |
---|---|
text-align: center | 父级:inline 子级: inline |
多元素水平居中
flex实现折行
BFC(Block formatting context)(小米)
参考链接:blog.csdn.net/sinat_36422…
块级作用域上下文
性能优化
提升前端应用性能的方法(小米)
参考链接:
- 字体文件压缩,例如:字蛛
- 图片文件压缩,例如:TinyPNG
客户端动画卡顿的优化(小米)
如何提升客户端(Electron、APP)前端的加载速度(美团)
- CDN
- 预加载
做过哪些webpack优化
参考链接:
- 有点难的 webpack 知识点:Dependency Graph 深度解析
- 带你深度解锁Webpack系列(优化篇)juejin.cn/post/684490…
webpack工作流程、各模块的作用
框架
Vue和React的区别
React的组合事件
参考链接:SyntheticEvent
React redux的原理
参考链接:React小书
setState的批量更新
下面代码输出是怎样的:
state = {
c: 0
}
componentDidMount(){
this.setState({ c: this.state.c + 1});
console.log('a', this.state.c);
this.setState({ c: this.state.c + 1});
console.log('b', this.state.c)
setTimeout(() => {
this.setState({ c: this.state.c + 1});
console.log('c',this.state.c);
this.setState({ c: this.state.c + 1});
console.log('d', this.state.c)
}, 0);
setTimeout(() => {
this.setState({ c: this.state.c + 1});
console.log('e',this.state.c);
this.setState({ c: this.state.c + 1});
console.log('f', this.state.c)
});
}
参考链接:
Hooks
参考链接:
React源码
参考链接:
React diff算法(高德出行)
useLayoutEffect用过吗(字节)
Vue源码
参考链接: 手写Vue2.0源码(一)-响应式数据原理|技术点评
vue-router路由的两种模式的原理和各自的应用场景
- hash
- path