作用域是可访问的变量的集合。在JavaScript中,作用域为可访问变量,对象,函数的集合,它分为局部作用域和全局作用域。
作用域决定了这些变量的可访问性(可见性)。
局部作用域:
变量在函数内部声明为局部变量,局部变量有局部作用域,局部变量只作用于函数内。
局部变量在声明的函数外不可以访问。
myFunction();
document.getElementById("demo").innerHTML = "carName 的类型是:" + typeof carName;
function myFunction()
{
var carName = "Volvo";
}
输出:局部变量在声明的函数外不可以访问。
carName 的类型是:undefined
不同的函数可以使用相同名称的变量,它只能在函数内部访问。局部变量在函数开始执行时创建,函数执行完成后局部变量会自动销毁。
函数内部定义的变量从函数外部是不可访问的(不可见的)。
全局作用域:
变量在函数外定义为全局变量,全局变量有局作用域:网页中的所有脚本和函数均可使用。
全局变量在任何脚本和函数内均可访问。
var carName = "Volvo";
myFunction();
function myFunction()
{
document.getElementById("demo").innerHTML =
"我可以显示 " + carName;
}
输出:全局变量在任何脚本和函数内均可访问。
我可以显示 Volvo
注:若变量在函数内部没有声明(未使用var关键字),该变量为全局变量。