全局变量(成员变量)

在整个程序中,哪里都可以访问到的变量。
定义形式:进入script立即定义的变量和没有var的变量。

局部变量

函数内部 的变量,只有函数内部可以访问到。
定义形式:函数内部用var定义的变量和形参)

隐式全局变量

隐式全局变量就是隐藏的全局变量不好被发现。
示例:

function  fn(){
var  a  =  b  =  c  =  1;   // b和c就是隐式全局变量
}

注意:

function  fn(){
var  a  =  b  =  c  =  1;   // b和c就是隐式全局变量(等号)
var  a = 1;  b = 2;  c = 3;     // b和c就是隐式全局变量(分号)
var  a = 1 ,  b = 2 ,  c = 3;    // b和c就不是隐式全局变量(逗号)
}

变量声明提升(出现原因:预解析)

函数中,定义变量在使用变量之后。
只提升变量名,不提升变量值,容易出现undefined。计算后形成NaN。
变量声明提升:在预解析的时候,成员变量和函数,被提升到最高位置,方便其他程序访问。
变量声明提升特点:成员变量只提升变量名,不提升变量值。但是,函数是所有内容全部提升。(function直接定义的)
函数范围内照样会出现变量声明提升。
什么情况容易出现变量声明提升:使用变量在定义变量之前。

Last modification:March 12, 2018
If you think my article is useful to you, please feel free to appreciate