javascript变量的作用域

首先我们先搞清楚JS 的执行行为:解释和执行阶段

解释阶段:语法分析,词法分析,作用域规则的确认。

执行阶段:创建执行上下文,执行函数代码,垃圾回收

我们先来看看作用域的概念:就是变量声明的区域,变量和函数可访问的范围。在全局声明的变量在全局可见可访问的就是全局变量。如果在内部函数声明的变量只能在函数内部访问

函数参数只能在函数内部访问,是局部变量

javascript是没有块级作用域的,只有全局作用域和函数作用域(es6是用块级作用域了变量声明用let和const)

变量在声明时没有使用关键字就属于全局变量,比如:var a = b = c =0; b和c都是全局作用域

全局作用域的变量可以在js任何地方都能访问到,函数作用域的变量只能在自己函数内部调用,包括自己内部定义的其他函数可以直接调用

变量的作用域是根据它声明时为准。因为前面我们已经说过JS的解释阶段已经定义好了这个变量的作用域的规则。

posted @ 2020-05-29 13:39  菜鸡前端  阅读(100)  评论(0)    收藏  举报