js作用域相关问题

先上代码
functiona(){
vartemp=10;
functionb(){
console.log(temp);//10
}
b();
}
a();
functiona(){
vartemp=10;
b();
}
functionb(){
console.log(temp);//报错
}
a();
模模糊糊有个作用域的概念,但是无法清楚明白的说出来,请大佬指点~
*打印出a函数的原因是将变量和函数取为同名了,现在已修改
UYOU
浏览 245回答 1
1回答

湖上湖

第一段代码相信没啥问题,函数b执行是能取到其父函数a作用域下的变量a。第二段由于函数a和函数b是同级函数,变量a是在函数a的作用域下,且没有全局作用域下的变量a的声明,所以报错。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript