javascript - 控制台执行settimeout函数时显示的匿名号码是什么?

标签 javascript settimeout

我尝试使用 JavaScript 中的回调执行 settimeout() 函数。每次我使用它时都会显示一个匿名随机数(仅在控制台中)。我想知道那是什么。

setTimeout(function() {   
      console.log("one");   
      setTimeout(function() {   
         console.log("two");   
         setTimeout(function() {   
            console.log("three");   
         }, 1000);   
      }, 1000);   
   }, 1000);   

执行上述代码会在控制台中给出一个数字:

Execution of the above code gives me a number in console

最佳答案

控制台将显示上面计算的最终表达式(同步)的结果。因为 setTimeout 返回一个与超时的唯一 ID 相对应的数字,所以您看到的数字就是最外层 setTimeout 的 ID。

(此 ID 很有用,因为它意味着您可以将其传递给 clearTimeoutclearInterval 来清除现有的超时或间隔。)

您将看到此代码的相同类型的输出,其中 ID 显式分配给变量,然后在最后一行再次计算:

outerTimeoutId = setTimeout(function() {   
  console.log("one");   
  setTimeout(function() {   
    console.log("two");   
    setTimeout(function() {   
      console.log("three");   
    }, 1000);   
  }, 1000);   
}, 1000);
outerTimeoutId;  // <-- results in some number being displayed in the console

关于javascript - 控制台执行settimeout函数时显示的匿名号码是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56696462/

相关文章:

javascript - Devtools 正在控制台中打印一些奇怪的数字?

Javascript::this.value 在 for 循环内无法正常工作?

javascript - 调整浏览器大小时jquery div innerheight不更新

javascript - Jquery检测命令/自定义BBcode

javascript - 如何让函数等到对象的值不是未定义的 js setTimeout

javascript - Node.js 是否强制 setTimeout 的最小延迟?

javascript - 好奇 setTimeout() 函数如何工作

javascript - 使用 Angular ngClick 调用分配给不同 Controller 的函数

javascript - 将纯文本转换为 json

javascript - 固定位置菜单栏在向下滚动时落后于 JS 幻灯片