为了账号安全,请及时绑定邮箱和手机立即绑定

var i=setTimeout("startCount()",1000); 这句前面加var 就不能使用暂停为什么

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>计时器</title>
</head>
<script type="text/javascript">
  var num=0;
  //var i;
  function startCount(){
    document.getElementById('count').value=num;
    num=num+1;
    var i=setTimeout("startCount()",1000);  //这离i前面不能加VAR
  }
  
</script>
</head>
<body>
  <form>
    <input type="text" id="count" />
    <input type="button" value="Start" onclick='startCount()'/>
    <input type="button" value="Stop" onclick='clearTimeout(i)' />
  </form>
</body>
</html>


正在回答

2 回答

i  是局部变量

var i是全局变量

你去看看局部变量和全局变量的解释和定义吧

0 回复 有任何疑惑可以回复我~

这个是全局变量和局部变量的问题,你的i在starCount内部时,i是局部变量,你在内部定义的i在外部是不存在的,所以你在另一个函数里面调用这个i,自然就无效。

所以要在外部定义i,这样这个i就是全局变量,当你在清除定时器的函数里调用i时,是可以被调用的,因为是全局变量的关系。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

var i=setTimeout("startCount()",1000); 这句前面加var 就不能使用暂停为什么

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信