了解JavaScript的单线程功能

e11*_*438 1 javascript jquery

我有这段代码片段用于隐藏段落并在此之后提醒消息

$(document).ready(function(){
    $("p").hide("slow");
    alert("stop");    
});
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为我想工作.它在完成隐藏段落之前发出警报.我知道可以通过使用回调函数来纠正它.

我的问题是,如果JavaScript是单线程的,为什么它不等到完成隐藏段落以提醒消息?如果它是单线程的,那么JavaScript首先应该完成隐藏过程然后来警告部分吗?

有人可以解释一下吗.

Aru*_*hny 6

因为动画版本hide与定时器(异步)有效...即它将启动一系列定时器操作来更新css属性.

调用hide('slow')将初始化定时器,定时器将定期调用以更新css属性opacity,因此一旦定时器被设置,调用后的其余语句将被执行.一旦当前执行堆栈完成,将发生对计时器的调用.