我的理解是首先声明a,然后打印,然后把promise对象赋值给a,打印a应该是promie但是打印undefined,最后才赋值给a然后打印promise
也就是说它执行new Promise的时候跳过了赋值操作,先去打印了a,但是这是为什么呢?第二种写法也会把a打印出来啊
<script>
let a
console.log(a)//undefined
a = new Promise((resolve, reject) => {
console.log(a)//undefined
})
console.log(a)//promise
//但是我这样写就会把函数打印出来
let a
console.log(a)
a = function () {
console.log(a)
}
a()
console.log(a)
</script>