Q&A
js 代码压缩 minify 的原理是什么
- 去除多余空格、换行符、注释
- 压缩长变量名、函数名
- 解析程序逻辑:合并声明、布尔值简化js
// 压缩前 const a = 3; const b = 4; // 压缩后 const a = 3, b = 4;
js// 压缩前 !b && !c && !d && !e // 压缩后 !(b||c||d||e)
- 编译预计算js
// 压缩前 const ONE_YEAR = 365 * 24 * 60 * 60 // 压缩后 const ONE_YEAR = 31536000
js// 压缩前 function hello () { console.log('hello, world') } hello() // 压缩后 console.log('hello, world')
Map 与 WeakMap 区别
WeakMap
:key
为弱引用,不影响垃圾回收的工作。只要value
在其他地方没有引用了,垃圾回收便会将其回收,WeakMap
中对应的key
也会消失,节省了内存占用。没有遍历方法。(即没有keys()
、values()
和entries()
方法,也没有size
属性)Map
:key
为强引用,会影响垃圾回收工作,key
对应的value
永远都会被引用,不会被垃圾回收。有遍历方法。