视频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()返回的是一个正整数值,如下图所示。

http://img.mukewang.com/climg/5d84742e08ddb21407300383.jpg

下面是我的测试代码:

function alertHello()
{
    alert("Hello!");
}

// 3秒以后调用alertHello
let timeoutId = setTimeout(alertHello, 3000);
console.log(timeoutId);
console.log(typeof (timeoutId));

控制台输出如下:

http://img.mukewang.com/climg/5d8474920877160502050074.jpg

说明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));

 控制台输出结果:

http://img.mukewang.com/climg/5d847752081fe46d10100229.jpg返回的类型也是number。

看来setTimeout和setInterval的返回值都是number类型,而不是object。

写回答

1回答

好帮手慕码

2019-09-20

同学你好!
1.视频中是没有问题的;

2.老师说的意思是调用定时器的这个intervalId代表后面的一个函数,是一个对象;

3.定时器setTimeout返回值是一个整数,表示定时器的编号,以后作为唯一标识符可以用来取消这个定时器。这个整数的类型是number:

http://img.mukewang.com/climg/5d8481ee0943d2ef05570331.jpg

http://img.mukewang.com/climg/5d8481fd09236f8101550100.jpg

分别表示第一个,第二个,第三个定时器。

如果帮助到了你,欢迎采纳,祝学习愉快~

0

0 学习 · 40143 问题

查看课程