【Web前端问题】[js]为什么同时定义全局变量和局部变量的时候会出现变量为undefined的情况

当然,注释掉局部变量,打印的结果自然为1

回答:

因为变量提升啊

function f(){//由于变量提升你可以这么看

var a;//此时a未定义,所以为undefined

console.log(a);

a=2;

}

如果f中没有var a=2;既不会有这种情况
http://www.runoob.com/js/js-h...

回答:

var a = 1;//全局变量

function f(){

console.log(a);//这里的在这取a实际上已经定义了只是未赋值,是因为预解析

var a = 2;

}

f();

/////////楼主的代码实际相当如下

var a = 1;//全局变量

function f(){

var a;

console.log(a);//在函数内部找到变量a,但此时的a只是定义了undefined

a = 2;

}

f();

回答:

先在函数内部找`function(){
console.log(a);

var a = 2;

}等价于function(){
var a;
console.log(a);
a=2;

}`

以上是 【Web前端问题】[js]为什么同时定义全局变量和局部变量的时候会出现变量为undefined的情况 的全部内容, 来源链接: utcz.com/a/137072.html

回到顶部