JavaScript全局变量

和其他程序语言一样,JavaScript 也有局部(本地)和全局变量。在JavaScript里面,对象和函数都是变量。

范围或域(scope)指明了你可以在哪里访问处理使用变量, 或者您是否可以访问该上下文中的变量。 JavaScript变量有两种作用域:全局和局部。在函数外面声明的变量是全局global变量,这些变量的值在整个程序中都能访问和编辑。在函数内部声明的变量是局部变量, 它在函数执行的时候才被建立,并且在函数的外面不能访问。

JavaScript 局部变量

在函数内部声明的是局部变量,并且只能在函数的内部访问处理。

例子

function doSomething() {
var name = "John";
//变量name只能在doSomething()里面使用
}

当函数开始的时候,局部变量被建立,并且在函数完成的时候被销毁。

JavaScript 全局变量

在函数外部声明的变量是全局变量,它全局可见,在网页里面的全部脚本和函数都能访问和编辑它。

例子

var total=10;
function addValue(){
total = total +100;
}
function dispValue(){
alert("Total is :" + total);
}
addValue();
dispValue();

这里定义了一个全局变量 total。在一个函数addValue()内部增加值。下一个函数dispValue()显示total的值。可以看到全局变量在一个函数内部被编辑,在另一个函数里面显示,因为是全局变量,所有可以如此访问使用。

自动全局

没有经过var关键字声明的变量,第一次被赋值时,它将自动被添加到全局环境中,成为全局变量。:

例子

function addValue(){
total = 100;
}
function dispValue(){
alert("Total is :" + total);
}
addValue();
dispValue();

这里,变量total没有被声明。在addValue()函数里面,变量total 被赋值。因为它没有被声明,所以就成了全局变量。

注意:很多时候需要访问全局变量,如果整个程序都要使用一个变量,就把它声明成全局变量。由于 JavaScript 允许重新声明变量, 如果一个函数在内部声明了一个和全局变量同名的变量,容易出现问题。

原文链接