在<script>标签中的变量定义规则,及生产作用域下的变量访问规则
变量定义规则
- 在
<script>标签环境中,使用关键字var,let,const来声明变量 ,属于全局变量,在此环境中可以任意访问并(修改)赋值。
- 在
<script>标签环境中,声明了函数,并在函数中使用关键字var,let,const声明了变量。其变量为局部变量,并只能在其函数作用域下进行访问或(修改)赋值。注意:在函数内部没有使用var、let、const关键字来声明变量,默认为就是全局变量。
变量访问规则
- 在函数作用域下,可以访问全局变量。
- 在函数嵌套环境中,内层函数可以访问外层函数作用域下的变量,但是外层函数不访问内层函数作用域下的变量。
- 总结一点,在产生了作用域的环境下,内能访外,外不能访内。
- 如果外层函数作用域必须要访问内层函数作用域下的变量,那么就形成了
闭包问题。
代码演示
var a = 123
function test() {
var a = 456
console.log(a)
}
结果分析
- 变量定义

- 变量访问

- 函数作用域中声明变量的规则(隐式转换,函数内部未只用关键字来声明变量,会隐式用var)
