通过自执行函数实现块级作用域时变量作用域问题。

今天看见块级作用域是发现了一个愚昧的问题,在此记录一下,谨记:

var a = 0;
(function(){
    var a = a;
    console.log(a);
})()

上述代码显示undefined,我还以为是输出0呢。后来想了想,知道了自己哪里错了,在此写详细点,怕有同样问题的小白疑惑:
全局变量: a,a=undefined,a=0;
函数内局部变量:a,a=undefined,a=a=undefined;
解决方法:
1. var a = 0;
(function(){
var b = a;
console.log(b);
})()
2. var a = 0;
(function(a){
console.log(a);
})(a)
在此,大家可以去了解函数参数传递方式
3.let就不必提了。

你可能感兴趣的:(工作经验)