JavaScript 中的变量作用域
2017-10-30 本文已影响0人
页面仔小杨
JavaScript 中的变量作用域
JavaScript中的变量作用域被定义为函数作用域。
变量的值在定义该变量的函数内是可见的,并且定义在该函数内的嵌套函数中也可访问该变量。
栗子1:
function showStr() {
return str
}
var str = ''global";
console.log(str) // "global"
console.log(showStr()) //"global"
在主程序中,如果在函数外定义了一个变量,那么该变量拥有全局作用域。
栗子2:
function showStr() {
var str = "local";
return str;
}
var str = "global";
console.log(str); // "global"
console.log(showStr()); // "local"
showStr() 函数内定义的变量str拥有局部作用域,而在主程序中定义的变量str是一个全局变量。尽管两个变量名字相同,但他们的作用域不同,在定义他们的地方访问时得到的值也不一样。
栗子3:
function showStr() {
str = "local";
return str;
}
str = "global";
console.log(str); // "global"
console.log(showStr()); // "local"
console.log(str); // "local"
如果在定义变量时省略了关键字var,那么定义的变量自动拥有了全局作用域,即使你是在一个函数中定义的该变量,它也是全局变量。