谁来给我解释这个程序的结果?var msg = "1";function show(){var msg;msg = "2";}show();alert(msg);l结果输出的是1,为什么?

来源:学生作业学帮网 编辑:学帮网 时间:2024/06/04 04:03:17

谁来给我解释这个程序的结果?
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
}