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

i关于局部变量的问题

i 在timedCount( )中定义了,不是只在这个函数中有效吗?

为什么在stopCount( )中还有效呢?

function timedCount(){
    document.getElementById('txt').value=num;
    num=num+1;
    i=setTimeout(timedCount,1000);
  }
  function stopCount(){
    clearTimeout(i);
  }

正在回答

1 回答

在JavaScript里,

如果一个函数体里的 (也就是function timedCount(){})中申明的变量没有使用var 

那么这个变量将会变成全局变量。

1 回复 有任何疑惑可以回复我~
#1

OlderSkee

i=setTimeout(timedCount,1000); 改成 var i=null; i=setTimeout(timedCount,1000); 那么就是局部变量了。
2016-09-03 回复 有任何疑惑可以回复我~
#2

qq_GreenOrRed_0 提问者

soga 为什么没有var也能定义一个变量 疑惑
2016-09-03 回复 有任何疑惑可以回复我~
#3

OlderSkee 回复 qq_GreenOrRed_0 提问者

这是JavaScript的特征之一。 有var 叫做显式声明,没有var叫做隐式声明 在函数体里没有var就变成了全局变量 。。 规定是这样呀
2016-09-03 回复 有任何疑惑可以回复我~
#4

qq_GreenOrRed_0 提问者 回复 OlderSkee

哇 谢谢你 又长知识了~好多都不知道呢
2016-09-03 回复 有任何疑惑可以回复我~
#5

OlderSkee 回复 qq_GreenOrRed_0 提问者

嘿嘿 同样是新手 一起加油呀
2016-09-03 回复 有任何疑惑可以回复我~
#6

qq_GreenOrRed_0 提问者 回复 OlderSkee

加油~
2016-09-03 回复 有任何疑惑可以回复我~
查看3条回复

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468191    人
  • 解答问题       21891    个

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

进入课程

i关于局部变量的问题

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