作用域
分为:全局作用域,局部作用域,块级作用域
作用域大的不可以访问小的作用域小的变量
for和if是全局的
JavaScript 全局变量
变量在函数外定义,即为全局变量。
全局变量有 全局作用域: 网页中所有脚本和函数均可使用。
实例
var carName = " Volvo";
// 此处可调用 carName 变量
function myFunction() {
// 函数内可调用 carName 变量
}
果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量。
以下实例中 carName 在函数内,但是为全局变量。
// 此处可调用 carName 变量
function myFunction() {
carName = "Volvo";
// 此处可调用 carName 变量
}
局部作用域
变量在函数内声明,变量为局部作用域
局部变量:只能在函数内部访问。
// 此处不能调用 carName
变量function myFunction() {
var carName = "V"; //
函数内可调用 carName 变量}
因为局部变量只作用于函数内,所以不同的函数可以使用相同名称的变量。
局部变量在函数开始执行时创建,函数执行完后局部变量会自动销毁。
块级作用域
用let命令新增了块级作用域,外层作用域无法获取到内层作用域,非常安全明了。即使外层和内层都使用相同变量名,也都互不干扰
function func() {
console.log(‘out’);
}
(function() {
var func = undefined;
if (false) {
function func() {
console.log(‘in’);
}
}
func();
})();