javascript变量的作用域
首先我们先搞清楚JS 的执行行为:解释和执行阶段
解释阶段:语法分析,词法分析,作用域规则的确认。
执行阶段:创建执行上下文,执行函数代码,垃圾回收
我们先来看看作用域的概念:就是变量声明的区域,变量和函数可访问的范围。在全局声明的变量在全局可见可访问的就是全局变量。如果在内部函数声明的变量只能在函数内部访问
函数参数只能在函数内部访问,是局部变量
javascript是没有块级作用域的,只有全局作用域和函数作用域(es6是用块级作用域了变量声明用let和const)
变量在声明时没有使用关键字就属于全局变量,比如:var a = b = c =0; b和c都是全局作用域
全局作用域的变量可以在js任何地方都能访问到,函数作用域的变量只能在自己函数内部调用,包括自己内部定义的其他函数可以直接调用
变量的作用域是根据它声明时为准。因为前面我们已经说过JS的解释阶段已经定义好了这个变量的作用域的规则。

浙公网安备 33010602011771号