视频05:02,超时调用的ID是对象,有错误。
来源:1-22 定时器setInterval
我学习太差被关起来了
2019-09-20 14:54:44
在视频05:02,老师讲到超时调用的ID是对象。然而MDN文档(https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout),
说明的是setTimeout()返回的是一个正整数值,如下图所示。
下面是我的测试代码:
function alertHello() { alert("Hello!"); } // 3秒以后调用alertHello let timeoutId = setTimeout(alertHello, 3000); console.log(timeoutId); console.log(typeof (timeoutId));
控制台输出如下:
说明setTimeout()返回的数据类型是number,而不是object?
另外,测试setInterval()返回值的代码如下:
function logHello() { console.log("hello"); } // 每隔一秒调用一次logHello let intervalId = setInterval(logHello, 1000); // 5秒之后停止console输出 setTimeout(function () {clearInterval(intervalId);}, 5000); console.log(intervalId); console.log(typeof (intervalId));
控制台输出结果:
返回的类型也是number。
看来setTimeout和setInterval的返回值都是number类型,而不是object。
1回答
同学你好!
1.视频中是没有问题的;
2.老师说的意思是调用定时器的这个intervalId代表后面的一个函数,是一个对象;
3.定时器setTimeout返回值是一个整数,表示定时器的编号,以后作为唯一标识符可以用来取消这个定时器。这个整数的类型是number:
分别表示第一个,第二个,第三个定时器。
如果帮助到了你,欢迎采纳,祝学习愉快~
相似问题
回答 1
回答 2