Open tiantingrui opened 2 years ago
Garbage collection
什么是垃圾回收?
JS垃圾回收用什么算法
闭包是符合我们的预期内存使用,不算内存泄露,仅仅只是内部的数据不可以被垃圾回收!
利用谷歌浏览器的 performance memory
泄露就是内存一直再上升
不泄露就是上升后会下降
弱引用,不会影响垃圾回收
WeakMap 的 key 只能是引用类型,不能是字符串
const p = document.createElement('p')
p.innerHtml = '111'
document.body.appendChild(p)
const list = document.getElementsByTagName('p')
console.log('length --', list.length)
console.log('start')
setTimeout(() => {
const list = document.getElementsByTagName('p')
console.log('length on timeout --', list.length)
alert('阻塞 timeout')
})
Promise.resolve().then(() => {
const list = document.getElementsByTagName('p')
console.log('length on promise then --', list.length)
alert('阻塞 timeout')
})
console.log('end')
console.log('start')
setImmediate(() => {
console.log('setImmediate')
})
setTimeout(() => {
console.log('timeout')
})
Promise.resolve().then(() => {
console.log('promise then')
})
process.nextTick(() => {
console.log('nextTick')
})
console.log('end')
// start end nextTick promise then timeout setImmediate
浏览器和node的eventloop流程基本相同,而nodejs宏任务和微任务分类型,有优先级
diff算法 vnode oldVnode (vdom)
注意
考察重点
注意事项