视频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