iteye_3775 2010-06-30 13:58
浏览 244
已采纳

谁能帮我看看下面这段JavaScript代码是怎样执行的,为什么会那样?

代码如下:
[code="JavaScript"]
setTimeout("alert('setTimeout');",0);
alert("starting");
//执行结果如下:
//starting
// setTimeout
[/code]

为什么会这样执行?

  • 写回答

1条回答 默认 最新

  • kjah_1 2010-06-30 14:15
    关注

    js是单线程的,由于setTimeout中的方法不在当前堆栈中,要等当前堆栈的方法执行完毕才会执行
    通过延长setTimeout后程序执行时间可以观察

    <!-- setTimeout("alert('setTimeout');",0); for(var i=0;i<10;i++){ alert("starting"); }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 求螺旋焊缝的图像处理
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了