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 = 31536000js// 压缩前 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永远都会被引用,不会被垃圾回收。有遍历方法。