先给出一个案例
console.log('1')
let promise = new Promise(function (resolve,reject) {
console.log('2')
resolve(3)
}).then(function (data) {
console.log(data)
})
setTimeout(function () {
console.log('4')
})
console.log('5')
//1,2,5,3,4
new promise()是同步的(执行器函数,同步执行),Promise.then()是微任务,DOM,ajax,setTimeou是宏任务。
内存机制:
js有自动垃圾回收机制,对于基本数据类型,定义一个变量,系统自动分配存储空间。你可以直接操作保存在栈内存空间的值。因此基本数据类型都是按值访问