JavaScript函数作用域和变量
作用域 定义:一个变量可以生效的范围 变量不是在所有的地方都可以使用,而这个变量的使用范围就是作用域 函数作用域 JS划分作用域是用大括号划分的 局部作用域 在JS中只有函数能生成一个局部作用域,别的都不行 每一个函数都是一个作用域 变量在函数内声明,变量为局部变量 //在函数大括号之中声明的变量,我们称之为局部变量 function foo ( ) { var a = 10 ; //在大括号之中声明的变量只能在这个大括号之中使用 console . log ( a ) ; } foo ( ) ; //运行结果: 10 console . log ( a ) ; //运行结果: ReferenceError: a is not defined 表示引用错误,a未被定义 因为局部变量只作用于函数内,所以不同的函数可以使用相同名称的变量。 局部变量在函数开始执行时创建,函数执行完后局部变量会自动销毁 全局作用域 全局作用域是最大的作用域 生命周期是和程序同步的,程序不关闭,作用域一直存在 变量在函数外定义,即为全局变量。 var a = 1 ; //变量声明没有被大括号包裹,我们称之为全局变量 //这个变量在任何地方都可以访问 console . log ( a ) ; //运行结果: 1 function foo ( ) { console . log ( a ) ; } foo (