先上代码
function a() {
var temp = 10;
function b() {
console.log(temp); // 10
}
b();
}
a();
function a() {
var temp = 10;
b();
}
function b() {
console.log(temp); // 报错
}
a();
模模糊糊有个作用域的概念,但是无法清楚明白的说出来,请大佬指点~
*打印出a函数的原因是将变量和函数取为同名了,现在已修改
第一段代码相信没啥问题,函数
b
执行是能取到其父函数a
作用域下的变量a
。第二段由于函数
a
和函数b
是同级函数,变量a
是在函数a
的作用域下,且没有全局作用域下的变量a
的声明,所以报错。