是和nodejs一样的原理吗?
涉及到io开了新线程吗 ?
还是整个都一个线程?
还是一个Sence一个线程?
setInverval新开线程了吗?
JS引擎本身是单线程的,但是JS引擎的载体(浏览器、Native App)可能是多线程的(JS线程、渲染线程、事件线程等等)。你在JS脚本中无法感知和访问其它线程,只能设置回调函数(比如事件回调、网络请求回调)供其它线程调用。setInterval只是设置一个任务队列等单线程一个个去执行(最明显的例子是,假如你使用setTimeout设置一个函数1秒后执行,但是随即执行了一个长达5秒的运算,那么这个函数会在5秒后而非1秒后执行)。