有关变量的声明问题,求大神给解答下。谢谢!

来源:5-5 返回值的函数

Only_L

2016-11-21 22:15

<script type="text/javascript">

  function  app2(x,y)

  { var sum,x,y;

    sum = x * y;

    return sum;

  }

 req1 = app2(5,6);

// var req1 = app2(5,6);

 req2 = app2(2,3);

// var req2 = app2(2,3);

 sumq = req1+req2;

// var sumq = req1+req2;

document.write("req1的值:"+req1+"<br/>");

document.write("req2的值:"+req2+"<br/>");

document.write(req1+"与"+req2+"和:"+sumq);

</script>

问题:req1、req2、sumq这三个变量,声明和不声明对运行结果都没有影响,这两者有什么区别吗?在使用的过程中有什么前提吗?

写回答 关注

3回答

  • A空城
    2016-11-22 09:54:57

     req1 = app2(5,6);

    // var req1 = app2(5,6);

     req2 = app2(2,3);

    // var req2 = app2(2,3);

     sumq = req1+req2;

    // var sumq = req1+req2;

    以上这段代码,不管你用var声明还是不声明,这两种写法都是全局变量,没什么区别,因为是在函数外。

      function  app2(x,y)

      { var sum,x,y;

        sum = x * y;

        return sum;

      }

    这段代码里面的三个变量均为局部变量。在函数里面用var声明了的变量就是局部变量。

      function  app2(x,y)

      { 

        return  x * y;

      }

    如果是这样写的话,当app2()这个函数被调用时,x,y都是全局变量,因为没用var声明。

    全局变量就是在代码里哪都能被调用,局部变量只能在某个范围内使用(如某个函数里使用)。


  • A空城
    2016-11-22 09:46:56

    在函数里没用var声明的变量,当函数被调用时就会变成全局变量,在函数里使用var声明了的变量,就是局部变量。在函数外用var声明和没声明的变量都是全局变量。

  • 我不会写歌丶3528493
    2016-11-21 22:35:46

    这三个变量如果不声明,也是可以直接给它赋值的,但是当给这三个没声明的变量赋值的时候,javaScript引擎就会自动把这个变量变成全局变量了,而本身你声明的变量也是全局变量,所以没有影响。

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468194 学习 · 21891 问题

查看课程

相似问题