作业帮 > 综合 > 作业

谁来给我解释这个程序的结果?

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/04/30 16:00:49
谁来给我解释这个程序的结果?
var msg = "1";
function show(){
var msg;
msg = "2";
}
show();
alert(msg);
l
结果输出的是1,为什么?
谁来给我解释这个程序的结果?
分析:
var msg = "1"; 这是外部变量,全局有效.
function show()
{
var msg;
msg = "2"; 内部变量,局部有效,退出函数就无效.
} 函数中无输出句 alert(msg); 故没有输出.
show(); 调用show() 函数,只做了一个赋值 msg = "2";,函数结束时就无效了.
alert(msg); 输出 外部变量 msg = "1"; 的值 .
l
修改:将输出句 alert(msg); 移 放到函数内即可 .
function show()
{
var msg;
msg = "2"; 内部变量,局部有效,退出函数就无效.
alert(msg); 输出 2
}
再问: var定义的变量不是局部 变量吗?直接定义的变量是全局变量吧
再答: var只是个定义变量的语句,不代表用它定义的变量就是局部变量,而是与定义函数时的位置有关,在函数外边定义的变量是全局变量,在全局域中有效。在函数内定义的变量是局部变量,只在函数内部有效。