判断如下代码在控制台打印顺序
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
setTimeout(
function(){
console.log("step0");
}
,0);
console.log("step1");
console.log("step2");
console.log("step3");
console.log("step4");
</script>
</body>
</html>
结果:
打印顺序结果原因分析:
浏览器会在处理完同步代码后再开始处理异步代码。
判断如下代码在控制台打印顺序
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
console.log("step1");
console.log("step2");
console.log("step3");
console.log("step4");
console.log("step5");
var sc = document.createElement("script");
sc.src = "./add.js";
var head = document.querySelector("head");
head.appendChild(sc);
sc.onload =function(){
console.log("load success");
}
console.log("step7");
</script>
</body>
</html>
add.js:
console.log("step6");
结果:
打印顺序结果
原因分析:
在使用appendChild插入script的时候,浏览器会异步加载该script标签中的代码,由于浏览器会在处理完同步代码后再开始处理异步代码,所以会出现如图的结果。
网友评论