代码如下function a () { var scope="global"; function t(){ console.log(scope); var scope="local" console.log(scope); } t();}a();如此 控制台输出 undefined 和local但是如果去掉“ var scope="local" , console.log(scope); ”,function a () {var scope="global"; function t(){ console.log(scope); } t();}a();控制台输出为global 这是为什么
1 回答
已采纳
慕郎_莲华
TA贡献83条经验 获得超16个赞
首先局部变量会覆盖全局变量,其次是js函数中的变量声明要提前~t方法中的var 会在方法开始就声明scope,此时值为undefined,所以打印会是undefined。下面就是scope赋值操作了,被赋予local,所以下面打印会是local。
添加回答
举报
0/150
提交
取消