- 作用域:变量只在某范围内起作用和效果,目的是提高程序可靠性,更重要的是减少命名冲突,作用域可分为全局作用域和局部作用域
- 全局作用域:整个script标签或者一个单独的js文件
- 局部作用域:在函数内部就是局部作用域
- 根据作用域不同,变量可分为全局变量与局部变量
- 全局变量:处于全局作用域的变量,在全局下都可以使用;变量会在程序运行时,把它设置为window对象的属性
- 局部变量:处于局部作用域下的变量,只能在声明它的函数中使用,全局下不能使用(形参也是局部变量)
var a = 777 //全局下声明的叫全局变量
var c = 21
function fn() {
var b = 666 //函数中声明的叫局部变量
var c = 12 //局部有c变量就不会访问全局变量c,这里c打印12
console.log(a, b, c) //局部可以访问全局变量a
}
fn()
console.log(a)
console.log(b) //不能访问局部变量,全局中没有b会报错
-
需要注意的是if语句,for循环等虽然有大括号,但是没有生成作用域,任然是全局作用域
-
全局变量只有在浏览器关闭时才会销毁,比较占内存;而局部变量在程序执行玩后就会销毁,比较节约资源