setInterval的返回值类型为什么为数值?
博客专区 > SubinY 的博客 > 博客详情
setInterval的返回值类型为什么为数值?
SubinY 发表于1年前
setInterval的返回值类型为什么为数值?
  • 发表于 1年前
  • 阅读 30
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

摘要: setInterval

btn[0].onclick = function(){
      var timer = null;
      timer = setInterval(function(){
        console.log('a');
      },1000)
      console.log(typeof timer);  //返回的是一个number数据类型
    }

DOM事件必须用绑定时所使用的同一个函数才能解绑。这是因为DOM事件不是由JavaScript来触发的,而是浏览器触发的。不管你绑定不绑定处理函数,也不管你绑定多少个事件处理函数,事件就在那里,只要用户点击了元素,click事件就会触发。所以你不再需要对这个事件进行处理的时候,只需解绑相应的函数即可。
而定时器事件不一样,它是JavaScript设定的,你可以在一个网页中设定多个定时器,因此你需要一个独一无二的东西来代表特定的定时器。但你无法取消对定时器事件的绑定,只能关闭这个定时器(其实完全可以把定时器事件设定成跟DOM事件一样的风格,先设置一个定时器,然后可以随时给这个定时器绑定、解绑处理函数而不是直接关闭处理器。之所以没有这样设计,应该是历史原因吧哈哈)。
定时器在JavaScript语言中并没有相应的类型,因此我们只能获得一个与定时器有关的数据,这样才能使用系统提供的函数来启动和关闭它。这个数据可以是一个string,一个number,甚至是一个array什么的都无所谓,但是最简单有效的方式就是用一个number了。

segmentfault也是一个中国开发者技术社区,感觉很厉害的样子

作者:陈安
链接:https://www.zhihu.com/question/31932536/answer/53917339
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

共有 人打赏支持
粉丝 8
博文 84
码字总数 60125
×
SubinY
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: