script๋ฅผ head ์์ ํฌํจ
<!DOCTYPE html>
<html lang="en">
<head>
<title>Document</title>
<script src="main.js"></script>
</head>
<body></body>
</html>

๐๐ป jsํ์ผ ์ฌ์ด์ฆ๊ฐ ํฌ๋ฉด ์ฌ์ฉ์๊ฐ ์น์ฌ์ดํธ๋ฅผ ๋ณผ ๋๊น์ง ๋ง์ ์๊ฐ์ด ์์๋จ
body์ ๋ ๋ถ๋ถ์ script ์ถ๊ฐ
<!DOCTYPE html>
<html lang="en">
<head>
<title>Document</title>
</head>
<body>
<div></div>
<script src="main.js"></script>
</body>
</html>

๐๐ป ํ์ด์ง๊ฐ ์ค๋น ๋ ๋ค์ ์คํฌ๋ฆฝํธ๋ฅผ ์๋ฒ์์ ๋ฐ์์จ ๋ค ์คํ
๐๐ป ์ฌ์ฉ์๊ฐ ๊ธฐ๋ณธ์ ์ธ html์ ์ปจํ
์ธ ๋ฅผ ๋น ๋ฅด๊ฒ ๋ณผ ์ ์์ผ๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๋ฐ์์ ์คํํ๊ธฐ๊น์ง์ ์๊ฐ์ด ์ค๋๊ฑธ๋ฆผ
head ์์ script + async
<!DOCTYPE html>
<html lang="en">
<head>
<title>Document</title>
<script async src="main.js"></script>
</head>
<body>
<div></div>
</body>
</html>

๐๐ป ๋ณ๋ ฌ๋ก jsํ์ผ์ ๋ค์ด
๐๐ป body์ ๋๋ถ๋ถ์ script๋ฅผ ์ถ๊ฐํ๋ ๊ฒ ๋ณด๋ค ๋ค์ด๋ฐ๋ ์๊ฐ์ ์ ์ฝ ํ ์ ์๋ค.
๐๐ป html์ด parsing๋๊ธฐ ์ ์ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์คํ๋๊ธฐ ๋๋ฌธ์ html์ ์ํ๋ ์์๊ฐ ์์ง ์ ์๋์ง ์์ ์ ์๋ค.
๐๐ป ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ธฐ ์ํด html parsing์ ์ธ์ ๋ ์ง ๋ฉ์ถ์ ์๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์๊ฐ ํ์ด์ง๋ฅผ ๋ณด๋๋ฐ ์๊ฐ์ด ๊ฑธ๋ฆด ์ ์๋ค.
โจ async๋ฅผ ์ด์ฉํด ๋ค์์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ค์ด๋ฐ๊ฒ ๋๋ฉด ๋จผ์ ๋ค์ด๋ก๋ ๋๋๊ฒ์ ์คํํ๋ค. ์ ์๋ ์คํฌ๋ฆฝํธ ์์์ ์๊ด์์ด ๋ค์ด๋ก๋ ๋ ์์๋ก ์คํ๋๋ค. ์์ฑํ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์์์ ์์กด์ ์ด๋ผ๋ฉด ๋น์ถ!
head ์์ script+ defer
๐ recommend it!
<!DOCTYPE html>
<html lang="en">
<head>
<title>Document</title>
<script defer src="main.js"></script>
</head>
<body>
<div></div>
</body>
</html>

๐๐ป jsํ์ผ์ ๋ค์ด ๋ฐ์ ๋ช
๋ น๋ง ์์ผ ๋๊ณ html parsing์ ๋๊น์ง ํ๋ค.
๐๐ป html์ parsingํ๋ ๋์ ํ์ํ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๋ค์ด๋ฐ์ ์ฌ์ฉ์์๊ฒ ํ์ด์ง๋ฅผ ๋ณด์ฌ์ค ๋ค ๋ฐ๋ก ์ด์ด์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์คํ.
โจ defer์ ์ด์ฉํด ๋ค์์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ค์ด๋ฐ๊ฒ ๋๋ฉด html์ parsingํ๋๋์ ํ์ํ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๋ค์ด๋ฐ์ ๋์ ๋ค์์ ์์๋๋ก ์คํํ๊ธฐ ๋๋ฌธ์ ์ํ๋ ์์๋๋ก ์คํ ๊ฐ๋ฅ!
๐๐ป 'use strict'
์์ ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ ๋ 'use strict'๋ฅผ ๋งจ ์์ ์ ์ธํ๋ฉด ์กฐ๊ธ ๋ ์์์ ์ธ ๋ฒ์ ์์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํ ์ ์๋ค.