声明提升

一.定义和声明

     1.对于变量来说,定义就是声明。

           例如:int  a  ;

           我们可以说它是定义也可以说是声明

      2.对于函数来说,声明和定义完全不是一回事

            void sum(int a,int b);  --函数的声明

            void sum(int a,int b){ }; --函数的定义

二.重复声明同一个变量

var a = 1;
var a = 2;
console.log(a); // 2
var a = 1;
var a;
console.log(a); //1
从变量提升的角度去理解,上面的代码经过变量提升就可以改写成下面这样,因为变量提升只提升声明不提升赋值
var a;
var a;
a = 1;
console.log(a);

参考《JavaScript高级程序设计》第7.3章节,原话如下

JavaScript从来不会告诉你是否多次声明了同一个变量;遇到这种情况,它只会对后续的声明视而不见(不过,它会执行后续声明中的变量初始化)。

猜你喜欢

转载自www.cnblogs.com/zhoujingguoguo/p/10192336.html