单线程是指 JavaScript 在执行的时候,有且只有一个主线程来处理所有的任务。

目的是为了实现与浏览器交互。

我们设想一下,如果 JavaScript 是多线程的,现在我们在浏览器中同时操作一个DOM,一个线程要求浏览器在这个 DOM 中添加节点,而另一个线程却要求浏览器删掉这个 DOM 节点,那这个时候浏览器就会很郁闷,他不知道应该以哪个线程为准。

所以为了避免此类现象的发生,降低复杂度,JavaScript选择只用一个主线程来执行代码,以此来保证程序执行的一致性。