m0_46602893 2021-04-06 18:47 采纳率: 91.5%
浏览 16
已采纳

关于函数作用域的问题?

<!-- <!DOCTYPE html> -->
<html lang="en">
      <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <title>Document</title>
            <script>
                  var a = 10, b = 20;

                  function show(){
                        var b =100;
                        a += 5;
                        alert(a + ","+ b);
                  }
                  show();
                  alert(a + ","+ b);
                 
            </script>
      </head>
      <body>
      </body>
</html>
<!-- <!DOCTYPE html> -->
<html lang="en">
      <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <title>Document</title>
            <script>
                  var a = 10, b = 20;

                  function show(a){
                        var b =100;
                        a += 5;
                        alert(a + ","+ b);
                  }
                  show(a);
                  alert(a + ","+ b);
                 
            </script>
      </head>
      <body>
      </body>
</html>

上面两段代码为什么第一段代码show是(15,100);alert(15,20)

第二段代码show是(15,100);alert(10,20)?

谁能详细解释一下,完全懵逼

  • 写回答

1条回答 默认 最新

  • soar3033 2021-04-06 21:54
    关注
    var a = 10, b = 20;     //“全局”变量a 值是10,“全局”变量b 值是20
     
                    function show(){
                            var b =100;    //“局部”变量b 值是100
                            a += 5;        //“全局”变量a 值改为15
                            alert(a + ","+ b);    //输出 ,a是15,b是100   (a全局,b局部)
                      }
                      show();
                      alert(a + ","+ b);    //输出   a是15,b是20(a全局,b全局)

    上面是第一段

     

    下面是第二段

                      var a = 10, b = 20;   //全局变量a 值10 ,全局变量b 值20
     
                      function show(a){        //这里引入了形参a,也就是说在show()内,a是个局部变量
                            var b =100;        //局部变量b 值100(不影响外面的全局变量b)
                            a += 5;            //局部变量a自加5,变成15,不影响外面的全局变量a
                            alert(a + ","+ b); //输出局部变量a=15,b=100
                      }
                      show(a);
                      alert(a + ","+ b);    //输出全局变量a=10,b=20
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题