变量的作用域
问该代码最后会输出什么?
情景一
let a=1
!function () {
let a=2
console.log(a)
}()
console.log(a)
}
最后输出一个2,一个1
为什么会这样呢?因为在函数外的a和函数里的a互不影响,各自输出各自的。
总结:当局域变量和全局变量中同时声明了同一个变量名时,全局变量和局部变量中的变量互不影响
情景二
let a=1
!function () {
console.log(a)
a++
console.log(a)
}()
console.log(a)
如果是这种情况,又会输出什么呢?
因为函数中并没有声明a,也就是说局域变量中没有声明a,那么局域变量就会到全局变量中找a,并使用a