JS์ ์ญ์ฌ ๋ ์ฌ๋ฏธ์๊ฒ ๋ด์ ๋งํฌ ๋จ๊น๋๋น....์ด์ด.....๐
๊ทธ๋ผ ์ด์ ์ง์ง ์์!!
๐ HTML์์ script
๋ฅผ ์ฌ์ฉํ์ฌ Java Script๋ฅผ ๋ถ๋ฌ์ฌ ์ ์๋๋ฐ, ์ค๋์ script
๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์!!
<body>
<script>
document.write("Hello World");
document.write(1+1);
</script>
</body>
์ฐ์ , ์ด๋ ๊ฒ body ํ๊ทธ ์์ script
tag๋ก ๋ฃ์ ์ ์๋ค!
(inline style๋ Internal Style Sheet๊ฐ์ ๋๋)
(์ฐธ๊ณ ๋ก document.write(1+1);
๋ ๊ฒฐ๊ณผ๊ฐ์ธ 2
๋ก ์ถ๋ ฅ๋๋ค. ์ฐ์~ ๋๋ํด!)
๐๐ปโโ๏ธ ํ์ง๋ง ๋๋ถ๋ถ์ ์ธ๋ถ ์คํฌ๋ฆฝํธ๋ฅผ HTML์ ์ฐ๊ฒฐํ ํ ๋ฐ, ์ด๋ค ๋ฐฉ๋ฒ์ผ๋ก ์ฐ๊ฒฐํ๋ฉด ๋ ๊น?
โน๏ธ head์์ script
<head> <script src="main.js"></script> </head>
- ์ด๋ ๊ฒ html์ ๋ถ์ํ๋ค๊ฐ....๊ฐ์๊ธฐ ๋ฉ์ถฐ๋ฒ๋ฆฌ๊ณ ...!
js๋ฅผ ๋จผ์ ๋ค์ด๋ฐ๊ณ ์คํํ ๋ค์, ๋ค์ html์ ๋ถ์ํ๋ค.
๐ css, ์นํฐํธ ๋ฑ ์ธ๋ถ ๋ฆฌ์์ค ํ์ผ์ ํ ๊ตฐ๋ฐ์ ๊ด๋ฆฌํ ์ ์๋ค.
๐ js๋ฅผ ๋ค์ด๋ฐ๊ณ ์คํํ ํ์ ๋๋จธ์ง html์ ๋ถ์ํ๊ธฐ ๋๋ฌธ์, js ํ์ผ์ด ํฌ๊ธฐ์ ๋ฐ๋ผ ๋ ๋๋ง ์๋๊ฐ ์์ฒญ๋๊ฒ ์ง์ฐ๋๋ค..
๐ body์์ script
<body> <script src="main.js"></script> </body>
- html์ ๋จผ์ ๋ถ์ ์๋ฃํ๊ณ โ ๊ทธ ํ์ js ๋ฅผ ๋ค์ด๋ฐ๊ณ โ js๋ฅผ ์คํํ๋ค.
๐ js๋ฅผ ๋ถ๋ฌ์ค๊ธฐ ์ ์, ๋จผ์ ์ค๋น๋ html์ ๋น ๋ฅด๊ฒ ๋ณผ ์ ์๋ค.
๐ ์น์ฌ์ดํธ๊ฐ js์ ๋ง์ด ์์กดํ๊ณ ์๋ค๋ฉด, ์ฌ์ฉ์๊ฐ ์ ์์ ์ผ๋ก ๊ตฌ๋๋๋ ํ์ด์ง๋ฅผ ๋ณด๊ธฐ๊น์ง ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค.
๐ head + async
<head> <script async src="main.js"></script> </head>
- html๋ฅผ ๋ถ์ํ๋ฉด์ ๋์์ js๋ ๋ค์ด๋ฐ๊ณ โ js ๋ค์ด๋ก๋๊ฐ ์๋ฃ๋๋ฉด โ html ๋ถ์์ ๋ฉ์ถ๊ณ js๋ฅผ ๋จผ์ ์คํํ๋ค.
๐ html๊ณผ js๋ฅผ ๋ณ๋ ฌ๋ก ๋ถ๋ฌ์ค๊ธฐ ๋๋ฌธ์ head๋ body์์ ๋จ๋ ์ผ๋ก ์ฌ์ฉํ๋๊ฒ ๋ณด๋ค ๋ ๋๋ง ์๋๊ฐ ๋ ๋น ๋ฅด๋ค.
๐ html์ด ๋ถ์๋๊ธฐ๋ ์ ์ js๊ฐ ๋จผ์ ๋ค์ด๋ฐ์์ง๊ธฐ ๋๋ฌธ์, js๋ ์ด๋ฏธ ์คํ๋๋๋ฐ html์ ๋ถ์์ด ์๋๋์ ์ฌ์ ํ ์ฌ์ฉ์๊ฐ ์ ์์ ์ผ๋ก ํ์ด์ง๋ฅผ ๋ณด๊ธฐ๊น์ง ์ค๋ ๊ฑธ๋ฆด ์ ์๋ค.
๐ ์ผ๋ถ ์นํ์ด์ง์์async
๋ฅผ ์ง์ํ์ง ์์ผ๋ฏ๋ก ์ฃผ์ํด์ผ ํ๋ค.<head> <script async src="a.js"></script> <script async src="b.js"></script> <script async src="c.js"></script> </head>
๐ ์ด๋ ๊ฒ ์ฌ๋ฌ๊ฐ์ js๋ฅผ scriptํ์ ๊ฒฝ์ฐ, scriptํ ์์์ ์๊ด ์์ด ๋จผ์ ๋ค์ด๋ก๋ ๋ ์์๋๋ก ์คํ๋๊ธฐ ๋๋ฌธ์...์์์ ์์กด์ ์ธ js๋ผ๋ฉด ์ ์์ ์ผ๋ก ๊ตฌ๋๋์ง ์์ ์๋ ์๋ค.
๐ head + defer
<head> <script defer src="main.js"></script> </head>
- html์ ๋ถ์ํ๋ ๋์ js๋ฅผ ๋ค์ด๋ง ๋ฐ๋๋ก ๋ช ๋ นํ๊ณ , html ๋ถ์์ด ๋๋ ํ์ ๋ค์ด๋ฐ์ ๋์๋ js๋ฅผ ๋ฐ๋ก ์คํํ๋ค.
๐ html์ด ๋ถ์๋๋ ๋์ js๋ฅผ ๋ฏธ๋ฆฌ ๋ค์ด๋ฐ์ ๋๊ณ , ์คํ์ html์ด ์๋ฒฝํ ์ถ๋ ฅ๋ ํ์ ๋ณด์ฌ์ฃผ๊ธฐ ๋๋ฌธ์ ๊ฐ์ฅ ๋น ๋ฅด๊ณ ์์ ํ๋ค.
๐ ์ผ๋ถ ์นํ์ด์ง์์defer
๋ฅผ ์ง์ํ์ง ์์ผ๋ฏ๋ก ์ฃผ์ํด์ผ ํ๋ค.(async ๋ณด๋จ ๋ง์ด ์ง์ํจ)<head> <script defer src="a.js"></script> <script defer src="b.js"></script> <script defer src="c.js"></script> </head>
๐ js๊ฐ ๋ค์ด๋๋ ์๋์ ์๊ด์์ด html์ด ๋ชจ๋ ์ถ๋ ฅ๋ ํ์ ์คํ๋๊ธฐ ๋๋ฌธ์,
์์์ ์์กด์ ์ธ js๋ ์ง์ ํ ์์๋๋ก ์ ์์ ์ผ๋ก ๊ตฌ๋๋๋ค!
ECMA๊ฐ ๊ณต์์ฌ์ดํธ์ด๊ธด ํ์ง๋ง.... ๋๋ ๋ํดํ๊ฒ...
ECMA๊ฐ ๋ํดํ๊ณ ์ด๋ ต๋ค๋ฉด, ์ํธํ๊ฒ MDN์์ ๊ณต๋ถํ์!
'use strict';
console.log('Hello World!');
javaScript๋ฅผ ์์ฑํ ๋, ์๋จ์ 'use strict';
๋ฅผ ์ ์ธํด์ฃผ๋ฉด ์ข๋ค!
TypeScript ์ด์ฉ์์๋ ์์ฑํ์ง ์์๋ ๋์ง๋ง, Vanilla js๋ก ์์
ํ ๋ ๊ผญ ์ ์ธํด์ฃผ์!
๐คท๐ปโโ๏ธ ์ ์ ์ธํด์ผ ํ๋๋ฐ???
javaScript๋ ๋งค์ฐ ์ ์ฐํ ์ธ์ด์ด๊ธฐ ๋๋ฌธ์ (์ ์ธ๋์ง ์์ ๋ณ์์ ๊ฐ์ ํ ๋นํ๋ค๋๊ฐ, ๊ธฐ์กด์ ์กด์ฌํ๋ ํ๋กํ ํ์ ์ ๋ณ๊ฒฝํ๋ค๋๊ฐ ๋ง๋์๋๋ ์ผ์ด ๋ชจ๋ ๊ฐ๋ฅํ๋ค...!) ๋ง์ ์ค์๊ฐ ์ผ์ด๋ ์ ์๋ค......
'use strict';
๋ โ ECMAScript5์ ์๋ ์๋ก์ด ๊ธฐ๋ฅ์ผ๋ก, ํ๋ก๊ทธ๋จ ๋๋ ํจ์๋ฅผ ์๊ฒฉํ ์ด์ฉ Context ์์์ ์คํ์ํฌ ์ ์๊ฒ ํด์....
๊ฐ๋ฐ ์์ด๋ณด ์ฝ๋ฆฐ์ด์
๋๋ค!
์ด ๋ด์ฉ์ ํผ์ ๋์์ ๊ฐ์&๊ตฌ๊ธ๋ง์ ํตํด ๋ฐฐ์ด ๋ด์ฉ์ ์ ๋ฆฌํ๋ ๊ฒ์ผ๋ก, ์ ๊ฐ ์ดํดํ๊ณ ๋์ด๊ฐ ๊ฐ๋
์ด ํ๋ ธ๊ฑฐ๋ ๋ ๋ณด์ถฉํ ๊ฐ๋
์ด ์๋ค๋ฉด ๋๊ธ ๋จ๊ฒจ์ฃผ์๋ฉด ์ ๋ง ๊ฐ์ฌํ๊ฒ ์ต๋๋ค!!