!async !defer
在<head>中,<script>不加async defer属性值时,浏览器至上而下加载html文档,遇到script引用,暂停html加载,等待script脚本加载&执行完,再加载之后的html
// index.html
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="./main.js"></script>
</head>
<body>
<div class="box"></div>
</body>
</html>
// main.js
const box = document.querySelector('.box')
console.log(box)
执行main.js中的代码时,<div class="box"></div>还没有加载,打印的结果为null
async
在<head>中,<script async>,html至上而下加载,遇到script引用,加载script脚本的同时加载html,