Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';s synchronous关于javascript同步代码_Javascript_Asynchronous - Fatal编程技术网

什么';s synchronous关于javascript同步代码

什么';s synchronous关于javascript同步代码,javascript,asynchronous,Javascript,Asynchronous,既然同步意味着同时进行,而常规javascript一行接一行地按顺序操作,那么为什么js synchronous不被称为异步呢?同样,为什么异步不被称为同步,因为两件事情同时发生Javascript是同步的,因为执行与解析“同步” 一行被解析,然后执行 然后,解析下一行,然后执行 每一行都被解析,然后依次执行 异步性是指Javascript在解析一行后无法立即执行该行,因为它需要等待,服务器发送响应或解析承诺。同步JS代码等待前一行执行,即使下一行不需要前一行的输出结果。 而异步。JS代码不会等

既然同步意味着同时进行,而常规javascript一行接一行地按顺序操作,那么为什么js synchronous不被称为异步呢?同样,为什么异步不被称为同步,因为两件事情同时发生

Javascript是同步的,因为执行与解析“同步”

一行被解析,然后执行

然后,解析下一行,然后执行

每一行都被解析,然后依次执行


异步性是指Javascript在解析一行后无法立即执行该行,因为它需要等待,服务器发送响应或解析承诺。

同步JS代码等待前一行执行,即使下一行不需要前一行的输出结果。 而异步。JS代码不会等待前一个代码完成执行,而是在后台运行它,同时继续执行下一行代码

我们可以使用
promise
async
wait
来使用这些功能

async
使函数异步。因此它可以在后台运行,
wait
使其异步。代码同步。所以JS等待它完成执行


有关更多详细信息:

异步并不意味着两件事情同时发生,但有些事情会在以后发生。这并不意味着两条语句(行)同时执行,而是源于这样一个事实:代码与计算机时钟信号以正常的时间流同相运行。
同步是协调事件以一致地操作系统。例如,管弦乐队的指挥使管弦乐队保持同步或及时。所有部分同步运行的系统被称为同步或同步,而非异步。
via so synchronous并不意味着同时
,而是按顺序
进行调度,而js中的异步代码正在分支到它们自己的时间线,如果你愿意的话。@DCR没有两个代码块同时执行。相反,执行一个代码块会导致稍后执行另一个代码块,而不会同步这两个代码块(通过直接调用/跳转)。你看过吗?这是完全错误的。行本身不会被解析,也不会在解析后立即执行 — 事实并非如此。在执行之前,需要对整个脚本(或模块)进行解析。然后在解析树中解析并执行所有语句,例如
a=b+c*d
→ <代码>a=(b+c*d)→ <代码>a=(b+(c*d))。这些事情是按顺序发生的,但通常异步代码并不特殊。大多数情况下,只是回调函数在以后的某个时候被调用。这与解析行的方式无关<代码>异步–<代码>等待和<代码>收益可能很特殊,因为它们会暂停函数内的执行,但仅此而已。我昨晚删除了这个答案,但我也睡着了,想了想,得出的结论是上面的评论和否决都是吹毛求疵。在六行javascript(不使用setTimeout、fetch()或Promise等)中,这六行代码永远不会以任意的随机顺序执行。相反,要执行的第一行是第1行,第四行是第4行,最后一行是第6行。为了解释为什么Javascript被描述为同步的,这就足够了。不,
async
不会使某些东西在后台运行。