javascript - [js]为什么同时定义全局变量和局部变量的时候会出现变量为undefined的情况
ringa_lee
ringa_lee 2017-04-11 09:06:44
[JavaScript讨论组]

ringa_lee
ringa_lee

ringa_lee

全部回复(3)
伊谢尔伦

因为变量提升啊

function f(){//由于变量提升你可以这么看
    var  a;//此时a未定义,所以为undefined
    console.log(a);
    a=2;
}

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

PHPz
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();

ringa_lee

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

var a = 2;

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

}`

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号