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
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

转载于:https://my.oschina.net/u/2949632/blog/799042

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值