页面中css和js先执行谁

JavaScript015

页面中css和js先执行谁,第1张

先纠正一点,css不是程序,它类似于装修设计图纸,而图纸是不会自己去进行施工的对吧,所以css不存在执行与否或者执行早晚的问题,只能这么说,浏览器在渲染页面时会自动按照css中的设定来进行,所以它作用于(而不是执行于)网页的渲染阶段。js则是程序,理论上它可以执行于任何阶段(当然是在浏览器获得网页数据之后),但是如果js程序涉及操作页面dom元素,则在渲染阶段可能会出错(因为涉及的dom元素可能尚未调入内存),因此,通常一个健全的、完善的网页,都会先把html、css、js等调入内存,然后再开始执行js,这可以通过把js的入口放在window对象的load事件过程中来实现。

在执行过程中,先遇到for循环,for循环先进入线程。当i=1时,循环走到setTimeOut后,此时的for循环还没有执行完成,setTimeOut就会被放入一个地方(线程池)等待执行。此时for循环继续执行,当i=2时,for循环仍没有执行完,这时的setTimeOut仍会被放在线程池中等待执行……依次类推,直到for循环转完3遍后,for循环执行完了,此时线程空闲了,在线程池中等待执行的setTimeOut依次执行打印i,而for循环执行完成后,i变成了4,所以打印出了三个4。