js异步机制,能用js异步执行的原理解释下面代码执行顺序吗?

点击事件:
<//div class="login-btn”>
《el-button type="primary" @click="submitForm('ruleForm');test()">登录 《/div》
点击事件绑定的函数:
submitForm(formName){
console.log("#################################");
window.location.href="www.baidu.com";
setInterval(function(){alert("Hello")},0);
for(let i=0;i console.log(i+"****************");

},
test(){
for(let i=0;i alert(i);
}
},
测试执行顺序为:
1. console.log("#################################");
2. for(let i=0;i console.log(i+"****************");

3 . for(let i=0;i alert(i);
}
4. setInterval(function(){alert("Hello")},0);//执行>=1次
5 . window.location.href="www.baidu.com";
各位大佬,能用js异步执行的原理解释下面代码执行顺序吗?其中window.location.hrefsh是异步的吗?感激不尽!!!!

setInterval(function(){alert("Hello")},0); 这是唯一一句异步的代码,在定时器到时间的时候执行。别的都是顺序执行
window.location.href="www.baidu.com"; 这个其实是在console.log("#################################"); 后面就执行的,但是因为加载需要时间,你看上去切换到baidu是最后。

window.location.href 语句是实现一个框架的页面在执行服务器端代码后刷新另一个框架的页面。严格意义上来说,javascript没有多线程的概念,所有的程序都是单线程依次执行的。

window.location.href="xx"这个当然是异步的,如果不信你可以用下面代码测试:
window.location.href="xx"
alert(3);//当前页面弹出
结果是先弹出alert在进行跳转,如果window.location.href是同步的话,alert根本没机会执行。
另外
window.location.href="xx1"
window.location.href="xx2"
查看浏览器地址栏显示的是xx2,如果是同步,那么会跳转到xx1页面,怎么还会有机会执行xx2的跳转呢?
希望帮到你

回复u010603891:单线程指的是在一个浏览器进程中只存在一个 Javascript 执行线程,但实际setTimeout的异步处理是依靠宿主(浏览器)的线程去进行时间计数,定时器线程在定时时间触发延时事件并将延时事件推入 Javascript 事件队列,当 Javascript 主线程同步代码执行完毕时,会去轮询该事件队列,取出最开始事件的处理函数推入主线程中被执行。因此可想而知window.location.href也是有宿主浏览器去执行,所有是异步的

window.location.href="xx"和js根本是两个不同的东西,根本不是异步