猿问

js问题,求解

代码如下

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   这是为什么


诺森德的凛冽寒风
浏览 1384回答 1
1回答

慕郎_莲华

首先局部变量会覆盖全局变量,其次是js函数中的变量声明要提前~t方法中的var 会在方法开始就声明scope,此时值为undefined,所以打印会是undefined。下面就是scope赋值操作了,被赋予local,所以下面打印会是local。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答