window.onload和setTimeout的执行顺序问题.

 var key

    window.onload=function () {

        key=1

        console.log('load'+1111)

    }

    setTimeout(function(){

        console.log('setTimeout'+key)

    },0)

这段代码在mac的chrome中输出的结果是

https://img3.mukewang.com/5c8f587800017ba705000112.jpg

在window的chrome中输出的结果是

https://img1.mukewang.com/5c8f587b0001f80f02820096.jpg


输出的结果不一样是什么原因导致的??


扬帆大鱼
浏览 1547回答 4
4回答

汪汪一只猫

你这样写太不稳定了//这只是一个声明的事件绑定而已 window.onload=function () {//这是一段立即执行的JSsetTimeout(function(){JS承上启下的执行顺序,onload事件不一定执行,就执行setTimeout也很正常啊;看浏览器内核反应速度!?不确定性因素太多了!

回首忆惘然

写一个同步方法就可以了。就是先让哪个执行,再让哪个执行。

万千封印

setTimeout 的毫秒数设置为 0 也不会立即执行,浏览器会有最小延迟,大概 5s 10s 这样。如果页面加载的延迟比这个延迟大就会先执行 setTimeout
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript