var num=0;为什么放在JS外面???

来源:8-5 计时器setTimeout()

慕设计2978630

2016-09-02 08:17

<!DOCTYPE HTML>

<html>

<head>

<script type="text/javascript">

var num=0;

function numCount(){

  

  document.getElementById('txt').value=num;

 num=num+1;

 

 setTimeout("numCount()",1000);

 }

</script>

</head>

<body>

<form>

 <input type="text"  size="40" id="txt"> 

<input   type="button" value="Start" onClick="numCount()" />

</form>

</body>

</html>


写回答 关注

4回答

  • 慕村1994845
    2016-10-24 21:56:48
    <html>
    <head>
    <script type="text/javascript">
    var c=0
    var t
    function timedCount()
    {
    document.getElementById('txt').value=c
    c=c+1
    t=setTimeout("timedCount()",1000)
    }
    
    function stopCount()
    {
    clearTimeout(t)
    //这里调用了变量t,而t=setTimeout("timedCount()",1000),也就说会调用到c;
    //如果c放在函数timedCount()中,是不是就不能给stopCount调用呢
    }
    </script>
    </head>
    
    <body>
    <form>
    <input type="button" value="开始计时!" onClick="timedCount()">
    <input type="text" id="txt">
    <input type="button" value="停止计时!" onClick="stopCount()">
    </form>
    
    <p>
    请点击上面的“开始计时”按钮。输入框会从 0 开始一直进行计时。点击“停止计时”可停止计时。
    </p>
    
    </body>
    
    </html>


    慕村1994...

    看注释

    2016-10-24 21:57:49

    共 1 条回复 >

  • 慕粉3905773
    2016-09-02 14:14:28

    var num=0放在外面,是全局变量,在任何地方都有定义,都可以使用;

    var num=0放在函数里,是局部变量,它只在定义它的函数内部起作用。

    这涉及到作用域的概念,后面你就知道了

  • qq_风华青春_03784766
    2016-09-02 11:50:59

    var num=0 如果放在function 内部,只能被函数内部调用,函数外部就不能调用。

  • qq__3590
    2016-09-02 09:18:08

    也可以放在里面,如果有另一个函数,放在外面num可以在另一个方法中使用,放在里面的num就不能在另一个函数中使用了。

    qq__35... 回复慕设计297...

    放在里面无论你执行多少次num=num+1,num都是0.放在外面它起到一个初始化的作用。

    2016-09-04 14:14:51

    共 2 条回复 >

JavaScript进阶篇

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

468061 学习 · 21891 问题

查看课程

相似问题