三十一.作用域

135 阅读2分钟

标识符

标识符:变量和函数名

var fn=;=>var是关键字,fn是标识符

function fm(){};=>function是关键字,fm是标识符

作用域

标识符(var修饰变量和function修饰函数名)能够被访问的地方(函数的代码块内部和函数的代码块外部)就是标识符的作用域。

标识符访问规则

1)函数内部的代码可以访问函数内部的标识符,也可以访问函数外部的标识符。(内部和外部都有的标识符则就近优先,会访问内部的标识符)

2)函数外部可以访问函数外部的标识符但不能访问函数内部的标识符(函数内部的标识符为局部标识符)。

案例:

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

ps:

1)函数嵌套时,函数自己内部没有var声明的变量则访问自己内部的隐式声明的形参变量,若两者都没有则访问函数外部的函数var声明的变量,外部没有声明的变量则访问外部函数隐式声明的变量,再两者都没有就访问全局变量。但外部的变量不能访问函数{ }括号中的内部变量,函数{ }括号具有作用域。

2)函数内部没有var声明或者隐式操作的形参,在函数内部修改函数外部相同的标识符,函数调用执行后就可修改函数外部标识符的值。

3)若函数内部的变量没有声明直接赋值,函数调用运行时会在全局作用域中隐式声明这个变量并赋值。

image.png

image.png

4)局部变量和全局变量区别:函数每一次调用局部变量会重复且每一次都重新生成,而全局变量是无论函数调用多少次只生成一个。

image.png

image.png