首先,请看图
那么当运行一个js函数时v8引擎是如何进行工作的呢?
v8引擎由两个主要模块组成:内存堆/调用堆栈
内存堆用于分配内存地址 调用堆栈用于执行代码
调用栈是一个盒子,当执行一个函数时,它会将函数放置到栈顶!函数返回时则弹出
我们都知道javascript是单线程编程语言,这意味着它只有一个调用堆栈
当执行以下代码时
这个时候调用堆栈怎么了?
当调用堆栈中有一个函数需要花费大量时间处理时,浏览器或node不能做任何事情,因为它被阻塞了 浏览器一般会询问你是否想关掉页面或者等待函数执行完成, 我们可以在不阻塞ui和不使浏览器失去响应的情况下执行大量代码吗?
你猜