有人能解释这个控制台输出吗?

时间:2015-10-26 01:53:23

标签: javascript debugging

当我在console

中运行以下内容时
console.log("1");
setTimeout(function(){console.log("2");},3000);
console.log("3");
setTimeout(function(){console.log("4");},1000);

我明白了:

enter image description here

3&之后用蓝色写的数字是多少?在4之前?

3 个答案:

答案 0 :(得分:6)

该数字是您执行的最后一个语句的返回值。

console.log("1");
setTimeout(function(){console.log("2");},3000);
console.log("3");
setTimeout(function(){console.log("4");},1000);//-- the return of this call

第一行打印1,返回值为undefined但被丢弃 第二行创建3秒计时器,返回值是计时器参考,但再次被丢弃 第三行打印3,返回值为undefined但被丢弃 最后一行创建1秒计时器,因为这是语句结果打印的最后一个语句
1秒后,4打印出来 最后是2打印

答案 1 :(得分:5)

该数字是调用setTimeout函数后返回的最后一次超时的ID。该ID可用于使用clearTimeout功能清除超时。 clearTimeout(timeoutId)

答案 2 :(得分:-2)

这可能是你在不同地方执行的帖子中没有包含的代码,当在JS Bin上检查时,这段代码显然只显示1,2,3,4

https://jsbin.com/ciqelelani/edit?js,console,output