javascript变量提升之变量先使用再声明笔记

原创 PHP笔记  2017-04-05 19:57  阅读 1,264 views 次

在javascript 中,声明的函数和变量都会被提升到最顶部,因此变量可以先使用再声明。如果变量在声明时初始化了,变量的声明会被提升,但初始化不会被提升。

实例:

<script type="text/javascript">
function fun(){
x=3;
alert(x+"|"+y);
var x;
var y=4;/*相当于var y;y=4; var y;被提升;y=4;不被提升*/
}
fun();
</script>

运行结果:

说明:

实例中,var x;被提升了,所以x为局部变量,值为3。var y;也被提升了,但初始化y=4;没被提升(var y=4;拆分为var y;y=4;)。所以x为初始化,值为undefined。

1、上边说明中为什么要强调x为局部变量?

答:因为,如果var x;没被提升或没有这条语句,不会影响运行的结果。因为声明变量可以不加var,但不加var的变量一般被当作全局变量,具有全局作用域。

2、那怎么来验证上边实例中x是局部变量还是全局变量呢?

答:这个简单,在函数外部访问一下变量x(必须在调用函数语句之后),看是否能访问。如果能访问,x就是全局变量,var x;就没有被提升。如果不能访问,var x;就被提升了,x就是局部变量。当然,结果肯定是不能访问的,var x;被提升了,x是局部变量。

本文地址:https://www.ggbiji.com/js-declare-variable.html
版权声明:本文为 PHP笔记 原创/整理文章,欢迎分享,转载请注明出处!

发表评论


表情