先来看一个例子:
setTimeOut(()=>{
console.log('set1');
});
new Promise((resolve,reject)=>{
console.log('p1')
resolve();
}).then(()=>{
console.log('then1');
})
console.log('1');
问:执行顺序?
答案:p1 --> 1 --> then1 --> set1 ;
new Promise() 的时候是同步执行。
微任务:
Promise, process.nextTick
宏任务:
整体的Scirpt代码,setTimeOut , setInterval
看看如下例子:
答案:pr1 —> 2 —> then1 —> set1 —>then2 —> then 4 —> set2
解析过程:
确保微任务执行完了才去执行宏任务。
一 、js执行机制
另一个例子:
问:下面的代码执行会出现什么样的结果?
var b = [];
for(var i=0;i<15;i++){
b.push(new Array(20*1024*1024));
}
结果,js内存不够了,V8引擎的内存溢出,崩溃了。
so,V8引擎内存有多大?
疑问:为什么64位的系统就只设置1.4G?设计的这么小?
原因:js回收的时候会中断执行。js回收100MB内存,则需要3ms。所以不能设计太大,因为会整个中断掉。
疑问:为什么1.4GB 是比较合适的?
原因&#