html 파서가 일반 스크립트 태그를 만나면 파싱을 멈추고 스크립트를 다운로드한다.
defer의 경우 스크립트 다운로드가 백그라운드로 실행되고 파싱은 그대로 진행된다.
html 문서 파싱이 끝난 후 defer됐던 스크립트가 실행된다.
스크립트가 DOM 전체를 참조해야 하는 경우 유용하다.
async의 경우 스크립트 다운로드가 백그라운드로 실행되고 파싱도 그대로 진행된다.
대신 스크립트 다운로드가 완료 됐을 때 스크립트가 실행된다.
동적 스크립트도 async 스크립트처럼 실행된다.