全局变量(global variable):可以在脚本的任何一个位置被引用.
局部变量(local variable):只存在于声明它的那个函数的内部,在函数的外部是无法引用的。
在javascript里,我们可以用var 明确的为函数变量声明作用域。
如果在某个函数中使用了var ,那个变量就被视为一个局部变量,她只存在于这个函数的上下文中;反正,如果没有使用var,那个变量将被视为全局变量,如果在脚本里已经存了了一个与之同名的变量,这个函数就会改变那个全局变量的值。
我们来看一下这个例子:
function square(num)
{
total = num*num;
return total;
}
var total = 50;
var number = square(20);
alert(total);
结果输出:400
全局变量的值编程了400。本意是让square()只让他计算出来的值返回给变量number,但由于没有把函数里的total 变量显示的声明为局部变量,所以导致了这样一个结果。
把这个函数改写成这样就是正确的
function square(num)
{
var total = num*num;
return total;
}
这样全局变量就安全了。