关于函数作用域的问题?

<!-- <!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)?

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

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