JS全局变量和局部变量

最近在学习JS时,发现对JS的全局变量和局部变量理解不够深入,特此做一下总结:
一 当局部变量和全局变量重名时,局部变量会覆盖全局变量.当离开局部变量的scope后,又重回到全局变量的scope,而当全局变量遇上局部变量时,怎样使用全局变量呢?用window.globalVariableName。
二 JS变量的scope是根据方法块来划分的(也就是说以function的一对大括号{ }来划分)是function块,而for、while、if块并不是作用域的划分标准,
三 JS在执行前会对整个脚本文件的声明部分做完整分析(包括局部变量),从而确定实变量的作用域(变量提升),JS引擎的工作方式是,先获取所有被声明的变量再逐一执行,所有变量的声明语句都会被提升到当前代码块的头部,变量提升只会提升变量的声明,变量赋值不会提升.
下面举例说明:

<script type="text/javascript">
            function test1(){
    
                var a=2;
                alert(a);
            }
            test1();//2局部变量
            alert(a);//1全局变量
</script>

上面的例子很好理解,在test1()中局部变量a把全局变量a覆盖了,当执行完test1()后,又重回到全局变量的范围.

<script type="text/javascript">
            var a=1;
            function 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值