今天看张孝祥的JavaScript的视频教程,讲到函数,代码如下
var msg="局部变量";
function square(x,y)
    {
        var sum;
        sum=x*x+y*y;
        return sum;
    }
function show()
    {
        var msg="局部变量";
        alert(msg);
    }
var sum;
alert("sum="+sum);
sum=square(2,3);
alert("sum="+sum);
show();
按正常情况下,三个alert语句应该有三个对话框,但是在我的浏览器中却有六个,依次是
sum=undefiend
sum=13
局部变量
sum=13
sum=13
局部变量
也就是说整段程序执行了两次,我在搜狗浏览器(网速保护版,两个内核都试了)以及IE8下都是如此,而视频中的运行是正常的。为什么呢?