为什么下面的代码在输出中给出'undefined'

Sak*_*kar 0 javascript settimeout

(function(){
    console.log(1);
    setTimeout (function(){console.log(2);},1000);
    setTimeout (function(){console.log(3);},0);
    console.log(4);
})();
Run Code Online (Sandbox Code Playgroud)

输出:

1
4
undefined
3
2
Run Code Online (Sandbox Code Playgroud)

为什么输出中有未定义的?

Jay*_*444 5

如果您在浏览器本身的控制台中执行此操作,那么无论何时您在console.log中打印undefined,请参阅此主题:

Chrome/Firefox console.log始终附加一行未定义的行

并且有无数其他线程解释为什么会发生这种情况.

如果这不是在控制台中,而是在你的JS文件中,那么代码中的其他地方还有其他的东西在做