๐ฌ๐ง English ๐ช๐ธ Spanish ๐ท๐บ Russian
- ์๋ฐ์คํฌ๋ฆฝํธ 30์ผ ์ ๋ณต
- ๐ 1์ผ์ฐจ
- ๐ป 1์ผ์ฐจ: ์ค์ต
์๋ฐ์คํฌ๋ฆฝํธ 30์ผ ์ ๋ณต ํ๋ก๊ทธ๋๋ฐ ์ฑ๋ฆฐ์ง์ ์ฐธ์ฌ ๊ฒฐ์ ํ์ ๊ฒ์ ์ถํ๋๋ฆฝ๋๋ค. ์ด๋ฒ ์ฑ๋ฆฐ์ง์์๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋๊ธฐ ์ํด์ ํ์ํ ๋ชจ๋ ๊ฒ๋ค๊ณผ, ์ผ๋ฐ์ ์ธ ํ๋ก๊ทธ๋๋ฐ์ ๋ํ ๊ฐ๋ ์ ๋ค๋ฃน๋๋ค. ํด๋น ์ฑ๋ฆฐ์ง๋ฅผ ๋ชจ๋ ์๋ฃํ์ จ๋ค๋ฉด, 30DaysOfJavaScript ํ๋ก๊ทธ๋๋ฐ ์ฑ๋ฆฐ์ง ์๋ฃ ์ธ์ฆ์๋ฅผ ๋ฐ๊ฒ ๋ฉ๋๋ค. ๋์์ด ํ์ํ๊ฑฐ๋, ๋ค๋ฅธ ์ฌ๋์ ๋์์ฃผ๊ณ ์ถ์ ๊ฒฝ์ฐ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐ๋ฝ์ ์ฃผ์ธ์.
์๋ฐ์คํฌ๋ฆฝํธ 30์ผ ์ ๋ณต ์ฑ๋ฆฐ์ง๋ ์ด๋ณด์์ ์๋ จ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์๋ฅผ ์ํ ์ง์นจ์์ ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์ ์ค์ ๊ฒ์ ํ์ํฉ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ์น์ ๋ค๋ฃจ๋ ์ธ์ด์ ๋๋ค. ์ ๋ ์ฌ๋ฌ๋ถ๋ค์ ๊ฐ๋ฅด์น๊ณ ์ฌ์ฉํ๋ ๊ฒ์ ์ฆ๊น๋๋ค. ์ฌ๋ฌ๋ถ๋ ๊ทธ๋ ๊ฒ ๋์ จ์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ 30์ผ ์ ๋ณต ์ฑ๋ฆฐ์ง๋ฅผ ๋จ๊ณ๋ณ๋ก ์งํํ๋ฉด์, ์ธ๋ฅ ์ญ์ฌ์ ๊ฐ์ฅ ์ธ๊ธฐ์๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๋ฐฐ์ฐ๊ฒ ๋ ๊ฒ์ ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ **์ํธ์์ฉ์ ํ๋ ์น์ฌ์ดํธ๋ฅผ ๋ง๋ค๊ฑฐ๋, ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ํน์ ๋ฐ์คํฌํ ์ ํ๋ฆฌ์ผ์ด์ , ๊ฒ์**์ ๋ง๋๋ ๋ฐ์ ์ฌ์ฉ์ด ๋ฉ๋๋ค. ์์ฆ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ **๋จธ์ ๋ฌ๋๊ณผ AI**๋ฅผ ํ๋๋ฐ์๋ ์ฌ์ฉ์ด ๋ฉ๋๋ค. **์๋ฐ์คํฌ๋ฆฝํธ(JS)**๋ ์ต๊ทผ ๋ช ๋ ๊ฐ ์ธ๊ธฐ๊ฐ ์์นํ์ฌ ์ ๋๋ฅผ ๋ฌ๋ฆฌ๊ณ ์์ต๋๋ค. ์ค์ ๋ก ๊นํ์์ 6๋ ๋์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๊ณ ์์ต๋๋ค.
ํ๋ก๊ทธ๋๋ฐ์ ๋ํ ์ ์ ์ง์์ ํด๋น ์ฑ๋ฆฐ์ง์์ ํ์ํ์ง ์์ต๋๋ค. ๋์ ์๋์ ๋ํ ์๊ตฌ์ฌํญ์ด ํ์ํฉ๋๋ค.
- ์ด์
- ์ปดํจํฐ
- ์ธํฐ๋ท
- ๋ธ๋ผ์ฐ์
- ์ฝ๋ ํธ์ง๊ธฐ
์ ๋ ์ฌ๋ฌ๋ถ์ด ๊ฐ๋ฐ์, ์ปดํจํฐ, ์ธํฐ๋ท์ด ๋๊ธฐ ์ํด์ ๊ฐํ ์๊ตฌ์ ๋๊ธฐ๋ถ์ฌ๊ฐ ์๋ค๊ณ ๋ฏฟ์ต๋๋ค. ๋ง์ฝ ์ด๋ฐ ๊ฒ๋ค์ ๊ฐ์ง๊ณ ์๋ค๋ฉด, ํด๋น ์ฑ๋ฆฐ์ง๋ฅผ ์์ํ ์ ์์ต๋๋ค.
์ฌ๋ฌ๋ถ์ Node.js๊ฐ ๋น์ฅ์ ํ์ ์์ง๋ง, ๋์ค์ ์ํด ์ค์น๊ฐ ํ์ํฉ๋๋ค. ํด๋น ์ฌ์ดํธ์์ ์ค์น๋ฅผ ์งํํด ์ฃผ์ธ์.
๋ค์ด๋ก๋๊ฐ ๋์ด ๋๋ฉด ํ์ผ์ ๋๋ธ ํด๋ฆญํด์ ์ด๊ณ ์ค์นํฉ๋๋ค.
์ฐ๋ฆฌ์ ๋ก์ปฌ ์ปดํจํฐ์ ํฐ๋ฏธ๋ ์ฐฝ์ ์ด๊ฑฐ๋, ๋ช ๋ น ํ๋กฌํฌํธ๋ฅผ ํตํด์ ๋ ธ๋๊ฐ ์ค์น๋์ด ์๋์ง ์ ์ ์์ต๋๋ค.
asabeneh $ node -v
v12.14.0ํด๋น ์ฑ๋ฆฐ์ง์ ์ ์ํ ๋์๋ Node 12.14.0 ๋ฒ์ ์ ์ฌ์ฉํ์ผ๋, ํ์ฌ๋ Node 14.17.6 ๋ฒ์ ์ ๊ถ์ฅํ๊ณ ์์ต๋๋ค.
๋ธ๋ผ์ฐ์ ๋ ๋ง์ ๊ฒ๋ค์ด ์กด์ฌํฉ๋๋ค. ๊ทธ๋ฌ๋, ์ฐ๋ฆฌ๋ ๊ตฌ๊ธ ํฌ๋กฌ์ ๊ฐ๋ ฅํ๊ฒ ๊ถ์ฅํฉ๋๋ค.
๊ตฌ๊ธ ํฌ๋กฌ์ด ์ค์น๋์ด์์ง ์๋ค๋ฉด, ์ค์น๋ฅผ ํด ์ฃผ์ธ์. ์ฐ๋ฆฌ๋ ๋ธ๋ผ์ฐ์ ์ฝ์์ฐฝ์์ ๊ฐ๋จํ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๊ธฐ ์ํด ๋ธ๋ผ์ฐ์ ์ฝ์์ ์ฌ์ฉํ์ง ์์ต๋๋ค.
๋ธ๋ผ์ฐ์ ์ค๋ฅธ์ชฝ ์๋จ์ ์๋ ์ 3๊ฐ๋ฅผ ํด๋ฆญํ๊ณ ์ถ๊ฐ ๋๊ตฌ -> ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ ํํ๊ฑฐ๋ ๋ฐ๋ก ๊ฐ๊ธฐ ํค๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ๊ธ ํฌ๋กฌ ์ฝ์์ฐฝ์ ์ด ์ ์์ต๋๋ค. ์ ๋ ๋จ์ถํค ์ฌ์ฉ์ ์ ํธํฉ๋๋ค.
์ฝ์์ฐฝ์ ์ด๊ธฐ์ํ ๋จ์ถํค๋ ์๋์ ๊ฐ์ต๋๋ค.
Mac
Command+Option+J
Windows/Linux:
Ctl+Shift+J์ฝ์์ฐฝ์ ์ด๊ณ ๋์, ํ์๋ ๋ฒํผ์ ๊ฒฝํํด ๋ณด์ธ์. ์ฐ๋ฆฌ๋ ์ฝ์์ฐฝ์์ ๋ง์ ์๊ฐ์ ๋ณด๋ด๊ฒ ๋ ๊ฒ ์ ๋๋ค. ์ฝ์์ฐฝ์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๊ฐ ์ ์ฅ๋๋ ์์น์ ๋๋ค. ๊ตฌ๊ธ ํฌ๋กฌ์ ์ฝ์์ฐฝ์ V8 ์์ง์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ๊ธฐ๊ณ ์ฝ๋๋ก ๋ณ๊ฒฝ์์ผ์ค๋๋ค.
์ฝ์์ฐฝ์์ ๊ฐ๋จํ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋ ์์ ๋ฅผ ์ ์ด๋ด ์๋ค.
์ฐ๋ฆฌ๋ ๊ตฌ๊ธ ํฌ๋กฌ์ด ์๋๋๋ผ๋, ์ฝ์์ฐฝ์์ ๊ฐ๋จํ ์ฝ๋๋ฅผ ์์ฑํด๋ณผ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด ์ฑ๋ฆฐ์ง๋ฅผ ์ํด์๋ ์ค์ง ๊ตฌ๊ธ ํฌ๋กฌ ์ฝ์์ฐฝ์๋ง ์ง์คํฉ์๋ค. ์ฝ์์ฐฝ์ ์ด์ด ์ฃผ์ธ์.
Mac
Command+Option+I
Windows:
Ctl+Shift+I์ฐ๋ฆฌ์ ์ฒซ ๋ฒ์งธ ์ฝ๋๋, ๋ด์ฅ๋์ด์๋ ํจ์์ธ **console.log()**์ ๋๋ค. ์ธ์๋ก ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ฉด, ํด๋น ํจ์๊ฐ ๊ฒฐ๊ณผ๋ฌผ์ ์ฝ์์ฐฝ์ ํ์ํฉ๋๋ค. ์ฐ๋ฆฌ๋ console.log() ํจ์์ 'Hello, World'๋ฅผ ์ธํ์ผ๋ก ์ ๋ฌ์ ํด ๋ด ์๋ค.
console.log('Hello, World!');console.log() ํจ์๋ ๋ฐ์ (comma)๋ก ์ฌ๋ฌ๊ฐ์ ์ธ์๋ฅผ ๊ตฌ๋ถํ ์ ์์ต๋๋ค. ๋ฌธ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. console.log(param1, param2, param3)
console.log('Hello', 'World', '!');
console.log('HAPPY', 'NEW', 'YEAR', 2020);
console.log('Welcome', 'to', 30, 'Days', 'Of', 'JavaScript');์์ ์์ ์ฝ๋์ ๊ฐ์ด, *console.log()*ํจ์๋ ์ฌ๋ฌ ์ธ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ถํ๋๋ฆฝ๋๋ค! ๋น์ ์ *console.log()*๋ฅผ ์ด์ฉํด์ ์ฒซ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์์ฑํ์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ฐ๋ฆฌ์ ์ฝ๋์ ์ฃผ์์ ์ถ๊ฐํฉ๋๋ค. ์ฃผ์์ ์ฝ๋์ ๊ฐ๋ ์ฑ๊ณผ, ์ฝ๋์ ์ค๋ช ์ ๋จ๊ธฐ๋๋ฐ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ฝ๋ ๋ด๋ถ์ ์ฃผ์์ ์คํํ์ง ์์ต๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์์ //๋ก ์์ํ๋ ๊ฒ์ ์ฃผ์์ด๋ฉฐ, /*๋ก ์์ํด์ */๋ก ๋ซํ๋ ๊ฒ ๋ํ ์ฃผ์์ด ๋ ์ ์์ต๋๋ค.
ํ ์ค ์ฃผ์ ์์
// ์ฒซ ๋ฒ์งธ ์ฃผ์์
๋๋ค.
// ๋ ๋ฒ์งธ ์ฃผ์์
๋๋ค.
// ํ ์ค ์ฃผ์์
๋๋ค.
์ฌ๋ฌ ์ค ์ฃผ์ ์์
/_ ์ฌ๋ฌ ์ค ์ฃผ์ํ ๋ ์ฌ์ฉํฉ๋๋ค. ์ฌ๋ฌ์ค ์ฃผ์์ ์ฌ๋ฌ ์ค์ ์ ๋ ฅํ ์ ์์ต๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ์น์ ๋ค๋ฃจ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋๋ค. _/
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ์ธ๊ฐ์ ์ธ์ด์ ์ ์ฌํฉ๋๋ค. ์์ด ํน์ ๋ค๋ฅธ ๋ชจ๋ ์ธ์ด๋ ๋จ์ด๋ถํฐ ์์ํด์ ๋ฌธ๋ฒ, ๋ฌธ์ฅ, ๋ณต์กํ ๋ฌธ์ฅ์ ์ฌ์ฉํ๊ณ ์๋ฏธ์๋ ๋ฉ์์ง๋ค์ ์ ๋ฌํฉ๋๋ค. ์์ด์์์ ๊ตฌ๋ฌธ์ ์๋ฏธ๋ ์ธ์ด์์ ์ ๋ง๋ค์ด์ง ๋ฌธ์ฅ์ ๋ง๋ค๊ธฐ ์ํ ๋จ์ด์ ๋ฌธ๋ฒ์ ๋ฐฐ์ด์ ๋๋ค. ๋ฌธ๋ฒ์ ๊ธฐ์ ์ ์ธ ์ ์๋ ์ปดํจํฐ ์ธ์ด์์์ ๋ฌธ์ฅ ๊ตฌ์กฐ์ ๋๋ค. ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์๋ ๋ฌธ๋ฒ์ด ์์ต๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์, ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ๋ฌธ๋ฒ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์ดํดํ ์ ์๋ ๋ฌธ๋ฒ์ ์์ฑํ์ง ์๋๋ค๋ฉด, ํด๋น ์ฝ๋๋ ์ฌ๋ฌ ๊ฐ์ง ์ค๋ฅ๋ฅผ ์ผ์ผํฌ ๊ฒ์ ๋๋ค. ์ค๋ฅ์ ๋ํ ๋ค์ํ ์ข ๋ฅ๋ ๋ค์์ ์ดํด๋ด ์๋ค. ์ง๊ธ๋ถํฐ๋ ๊ฐ๋จํ ๋ฌธ๋ฒ ์ค๋ฅ๋ฅผ ์ดํด๋ด ์๋ค.
๊ณ ์์ ์ผ๋ก ์ค์๋ฅผ ์ ์ง๋ ์ต๋๋ค. ๊ทธ ๊ฒฐ๊ณผ ์ฝ์์ฐฝ์ ๊ตฌ๋ฌธ ์ค๋ฅ๋ฅผ ๋ฐ์์ํค๊ณ ์์ต๋๋ค. ์ค์ ๋ก ์ด๋ฐ ๊ตฌ๋ฌธ์ ๋งค์ฐ ์ ์ตํฉ๋๋ค. ์ด๋ค ์ค์๊ฐ ์ผ์ด๋ฌ๋์ง ์๋ ค์ค๋๋ค. ์ค๋ฅ ํผ๋๋ฐฑ์ ๋ํ ๊ฐ์ด๋๋ผ์ธ์ ์ฝ์ผ๋ฉด์ ์ฐ๋ฆฌ๋ ๊ตฌ๋ฌธ์ ์์ ํ๊ณ ๋ฌธ๏ฟฝ๏ฟฝ๏ฟฝ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค. ํ๋ก๊ทธ๋จ์ผ๋ก๋ถํฐ ๋ฐ์ํ ์ค๋ฅ๋ฅผ ๊ตฌ๋ณํ๊ณ ์ ๊ฑฐํ๋ ๊ณผ์ ์ ๋๋ฒ๊น ์ด๋ผ๊ณ ๋งํฉ๋๋ค. ์๋ ์ค๋ฅ๋ฅผ ์์ ํด ๋ด ์๋ค:
console.log('Hello, World!');
console.log('Hello, World!');์ง๊ธ๊น์ง, ์ฐ๋ฆฌ๋ console.log() ํจ์๋ฅผ ํตํด์ ๋ฌธ์์ด์ ํ์ํ๋ ๋ฐฉ๋ฒ์ ๋ค๋ฃจ์์ต๋๋ค. console.log() ๋ฅผ ์ด์ฉํด์ ๋ฌธ์์ด์ ์ ๋ ฅํ๋ ค๋ฉด ์์ ๋ฐ์ดํ๋, ํฐ ๋ฐ์ดํ ํน์ ๋ฐฑํฑ ๋ฐ์ดํ์์ ๋ค์ด๊ฐ์์ด์ผ ํฉ๋๋ค.
์์:
console.log('Hello, World!');
console.log('Hello, World!');
console.log(`Hello, World!`);์ด๋ฒ์๋ ๊ตฌ๊ธ ํฌ๋กฌ ์ฝ์์ฐฝ์์ ์ซ์ ์๋ฃํ์ console.log() ๋ก ์์ฑํ๋ ๋ฒ์ ๋ํด์ ๊ณต๋ถํด ๋ด ์๋ค.
๋ฌธ์์ด์ธ์๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํด์ ์ํ์ ์ธ ๊ณ์ฐ๋ ๊ฐ๋ฅํฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ ๊ฐ๋จํ ๊ณ์ฐ์ ํด ๋ด ์๋ค. ์ฝ์์ฐฝ์ console.log() ํจ์ ์์ด ์ง์ ์ธ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์์ ๋งํ ๊ฒ์ ํจ์ ์ฌ์ฉ์ด ํ์์ ์ธ ํ ์คํธ ํธ์ง๊ธฐ์์ ์ผ์ด๋๊ธฐ ๋๋ฌธ์, ๋งจ ์ ๋ถ๋ถ์ ํฌํจ๋์ด ์์ต๋๋ค. ์ฝ์์ฐฝ์ ํตํด์ ๋ช ๋ น์ด๋ค์ ๊ฐ์ง๊ณ ๋ ์ ์์ต๋๋ค.
console.log(2 + 3); // ๋ง์
console.log(3 - 2); // ๋บ์
console.log(2 * 3); // ๊ณฑ์
console.log(3 / 2); // ๋๋์
console.log(3 % 2); // ๋๋์
- ๋๋จธ์ง ๊ตฌํ๊ธฐ
console.log(3 ** 2); // ์ ๊ณฑ 3 ** 2 == 3 * 3์ฐ๋ฆฌ๋ ๋ธ๋ผ์ฐ์ ์ ์ฝ์์์ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ง๋ง, ํฐ ํ๋ก์ ํธ์์๋ ๋ฐ๋์งํ์ง ์์ต๋๋ค. ์ค์ ์ผํ๋ ํ๊ฒฝ์์ ๊ฐ๋ฐ์๋ ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ํด์ ์๋ก ๋ค๋ฅธ ์ฝ๋ ํธ์ง๊ธฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ํด๋น ์๋ฐ์คํฌ๋ฆฝํธ 30์ผ ์ ๋ณต ์ฑ๋ฆฐ์ง์์๋ Visual Studio Code๋ฅผ ์ฌ์ฉํ ์์ ์ ๋๋ค.
Visual Studio Code๋ ๋งค์ฐ ์ ๋ช ํ ์คํ ์์ค ํ ์คํธ ํธ์ง๊ธฐ์ ๋๋ค. ์ฐ๋ฆฌ๋ Visual Studio Code๋ฅผ ๋ค์ด๋ก๋ ํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค. ๊ทธ๋ ์ง๋ง ๋ค๋ฅธ ํธ์ง๊ธฐ๊ฐ ๋ง์์ ๋ ๋ค๋ฉด, ์ํ์๋ ๋๋ก ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
Visual Studio Code๋ฅผ ์ค์นํ๋ค๋ฉด, ์ค์ ๋ก ์ฌ์ฉํด ๋ด ์๋ค.
Visual Studio Code์ ์์ด์ฝ์ ๋๋ธ ํด๋ฆญํด์ ์คํํฉ์๋ค. ์คํ์ด ๋์๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ํ๋ฉด์ ๋ณผ ์ ์์ต๋๋ค. ๋ผ๋ฒจ์ด ์ ํ์ ธ์๋ ์์ด์ฝ๋ค์ ์ฌ์ฉํด ๋ด ์๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ ์น ํ์ด์ง์ ์ธ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ์ ์ฉํ ์ ์์ต๋๋ค:
- ์ธ๋ผ์ธ ์๋ฐ์คํฌ๋ฆฝํธ
- ๋ด๋ถ ์๋ฐ์คํฌ๋ฆฝํธ
- ์ธ๋ถ ์๋ฐ์คํฌ๋ฆฝํธ
- ์ฌ๋ฌ ์ธ๋ถ ์๋ฐ์คํฌ๋ฆฝํธ
ํด๋น ์น์ ์์๋ ์นํ์ด์ง์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ ๊ฐ ๋ฐฉ๋ฒ์ ๋ค๋ฃฐ ์์ ์ ๋๋ค.
๋ฐ์คํฌํ ๋ฑ ์๋ฌด ๊ณณ์์ 30DaysOfJS๋ผ๋ ์ด๋ฆ์ผ๋ก ํ๋ก์ ํธ ํด๋๋ฅผ ๋ง๋ค์ด ์ฃผ์ธ์. ๋ง๋ค๊ณ ๋์, **index.html**์ ์์ฑํฉ์๋ค. ์๋์ ์ฝ๋๋ฅผ ๋ถ์ฌ๋ฃ๊ณ ํฌ๋กฌ๊ณผ ๊ฐ์ ๋ธ๋ผ์ฐ์ ๋ก ์ด์ด๋ด ์๋ค.
<!DOCTYPE html>
<html>
<head>
<title>30DaysOfScript:Inline Script</title>
</head>
<body>
<button onclick="alert('Welcome to 30DaysOfJavaScript!')">
ํด๋ฆญํด ์ฃผ์ธ์
</button>
</body>
</html>์ง๊ธ ์ฒซ ์ธ๋ผ์ธ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ด์ฅ ํจ์ alert() ๋ฅผ ์ด์ฉํด์ ๊ฒฝ๊ณ ๋ฉ์์ง๊ฐ ๋จ๊ฒํ ์ ์์ต๋๋ค.
๋ด๋ถ ์๋ฐ์คํฌ๋ฆฝํธ๋ head ํน์ body ์์ ์์ฑํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋, HTML๋ฌธ์์์ body์ ๋ฃ๋ ๊ฒ์ด ๋ ์ ํธ ๋ฉ๋๋ค. ์ฒซ ๋ฒ์งธ๋ก, ํ์ด์ง์ head๋ถ๋ถ์ ์์ฑํด ๋ด ์๋ค.
<!DOCTYPE html>
<html>
<head>
<title>30DaysOfScript:Internal Script</title>
<script>
console.log('Welcome to 30DaysOfJavaScript');
</script>
</head>
<body></body>
</html>์ฐ๋ฆฌ๋ ์์ ๊ฐ์ด ๋ด๋ถ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์์์ ์ธ๊ธํ๋ฏ์ด, body๋ถ๋ถ์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ๋ฃ๋ ๊ฒ์ด ๋ ์ ํธ๋ฉ๋๋ค.
<!DOCTYPE html>
<html>
<head>
<title>30DaysOfScript:Internal Script</title>
</head>
<body>
<button onclick="alert('Welcome to 30DaysOfJavaScript!');">Click Me</button>
<script>
console.log('Welcome to 30DaysOfJavaScript');
</script>
</body>
</html>๋ธ๋ผ์ฐ์ ์ ์ฝ์์ฐฝ์ ์ด๊ณ console.log()์ ์ถ๋ ฅ๊ฐ์ ํ์ธํด ๋ด ์๋ค.
๋ด๋ถ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐฉ์๊ณผ ์ ์ฌํ๊ฒ, ์ธ๋ถ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐฉ์์ header ํน์ body์ ์กด์ฌํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด ์ญ์ body์ ์ ๋ ๊ฒ์ด ์ ํธ๋ฉ๋๋ค. ์ฐ์ , .js ํ์ฅ์๋ฅผ ๊ฐ์ง ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ์์ฑํด์ผ ํฉ๋๋ค. .js ํ์ฅ์๋ก ๋๋๋ ๋ชจ๋ ํ์ผ์ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ๋๋ค. introduction.js ํ๋ก์ ํธ ํด๋ ๋ด๋ถ์ ํ์ผ์ ์์ฑํ๊ณ ์๋์ ๊ฐ์ ์ฝ๋๋ฅผ ๋ฃ์ด ๋ด ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ณธ๋ฌธ ํ๋จ์ ์ด .jsํ์ผ์ ์ฐ๊ฒฐํด ๋ด ์๋ค.
console.log('Welcome to 30DaysOfJavaScript');head ์์์ ์ธ๋ถ ์๋ฐ์คํฌ๋ฆฝํธ:
<!DOCTYPE html>
<html>
<head>
<title>30DaysOfJavaScript:External script</title>
<script src="introduction.js"></script>
</head>
<body></body>
</html>body ์์์ ์ธ๋ถ ์๋ฐ์คํฌ๋ฆฝํธ:
<!DOCTYPE html>
<html>
<head>
<title>30DaysOfJavaScript:External script</title>
</head>
<body>
<!-- header ํน์ body ์ด๋์ ๋ฃ๋ ์๊ด์ด ์์ต๋๋ค. -->
<!-- ๊ทธ๋ฌ๋, ์ฌ๊ธฐ์ ๋ฃ๋ ๊ฒ์ด ์ ํธ๋๋ ํธ์
๋๋ค. -->
<script src="introduction.js"></script>
</body>
</html>๋ธ๋ผ์ฐ์ ์ ์ฝ์์ฐฝ์ ์ด๊ณ console.log()์ ์ถ๋ ฅ๊ฐ์ ํ์ธํด ๋ด ์๋ค.
์ฐ๋ฆฌ๋ ํ ๊ฐ์ ์น ํ์ด์ง์ ์ฌ๋ฌ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. ํ๋ก์ ํธ ํด๋ ๋ด์ helloworld.js ํ์ผ์ ์์ฑํ๊ณ ์๋ ์ฝ๋๋ฅผ ์์ฑํด ๋ด ์๋ค.
console.log('Hello, World!');<!DOCTYPE html>
<html>
<head>
<title>Multiple External Scripts</title>
</head>
<body>
<script src="./helloworld.js"></script>
<script src="./introduction.js"></script>
</body>
</html>main.js ํ์ผ์ ๋ค๋ฅธ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ ์๋์ ์์ด์ผ ํฉ๋๋ค ์ด๊ฒ์ ๋งค์ฐ ์ค์ํฉ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ์ฌ๋ฌ ์๋ฃํ๋ค์ด ์์ต๋๋ค. ๋ค์์ ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ณธ ์๋ฃํ์ ๋๋ค: ๋ฌธ์์ด, ์ซ์, ๋ถ๋ฆฌ์ธ, undefined, null ์ถ๊ฐ๋ก Symbol ์ด ์์ต๋๋ค.
- ์ ์ ์๋ฃํ: ์ ์ (์์, 0, ์์) ์ซ์ ์์: ... -3, -2, -1, 0, 1, 2, 3 ...
- ์ค์ ์๋ฃํ: ์์ ์ซ์ ์์ ... -3.5, -2.25, -1.0, 0.0, 1.1, 2.2, 3.5 ...
์์ ๋ฐ์ดํ, ํฐ ๋ฐ์ดํ, ๋ฐฑํฑ ๋ฐ์ดํ ์ฌ์ด์ ์๋ ํ ๊ฐ ํน์ ๊ทธ ์ด์์ ๋ชจ์์ ๋๋ค.
์์:
'Asabeneh';
'Finland';
'JavaScript is a beautiful programming language';
'I love teaching';
'I hope you are enjoying the first day'`We can also create a string using a backtick`;
('A string could be just as small as one character as big as many pages');๋ถ๋ฆฌ์ธ ์๋ฃํ์ ์ฐธ๊ฐ๊ณผ ๊ฑฐ์ง๊ฐ์ด ์์ต๋๋ค. ๋ชจ๋ ๋น๊ต๋ ์ฐธ ํน์ ๊ฑฐ์ง๊ฐ์ ๊ฐ๋ ๋ถ๋ฆฌ์ธ ๊ฐ์ ๋ฐํํฉ๋๋ค.
๋ถ๋ฆฌ์ธ ์๋ฃํ์ ์ฐธ ํน์ ๊ฑฐ์ง์ ๋๋ค.
์์:
true; // ๋ถ์ด ์ผ์ ธ์๋ค๋ฉด ๊ฐ์ true์
๋๋ค.
false; // ๋ถ์ด ๊บผ์ ธ์๋ค๋ฉด ๊ฐ์ true์
๋๋ค.์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ณ์์ ์๋ฌด ๊ฐ๋ ํ ๋นํ์ง ์์ผ๋ฉด, ๋ณ์๋ undefined๊ฐ์ ๊ฐ์ง๋๋ค. ๋ง๋ถ์ฌ ์๊ฐํ๋ฉด ํจ์๊ฐ ์๋ฌด ๊ฐ๋ ๋ฐํํ์ง ์์ผ๋ฉด, ๊ทธ๊ฒ์ undefined๋ฅผ ๋ฐํํฉ๋๋ค.
let firstName;
console.log(firstName); // undefined์ด๋ค. ํ ๋น์ด ๋์ง ์์๊ธฐ ๋๋ฌธ์ด๋ค.์๋ฐ์คํฌ๋ฆฝํธ์์ ๊ฐ์ด ๋น์ด์์ผ๋ฉด ๋ณ์๋ null๊ฐ์ ๊ฐ์ง๋๋ค.
let emptyValue = null;ํน์ ๋ณ์์ ์๋ฃํ์ ํ์ธํ๊ณ ์ถ์ผ๋ฉด typeof ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค. ์์๋ฅผ ํ์ธํด ๋ด ์๋ค.
console.log(typeof 'Asabeneh'); // ๋ฌธ์์ด
console.log(typeof 5); // ์ซ์
console.log(typeof true); // ๋ถ๋ฆฌ์ธ
console.log(typeof null); // null
console.log(typeof undefined); // undefined์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ์ธ์ด์ฒ๋ผ ์ฃผ์์ ๋ฌ ์ ์๋ ๊ฒ์ ๊ธฐ์ตํด ๋ด ์๋ค. ์ฃผ์์ ๊ฐ๋ ์ฑ์ ์ํด์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ฃผ์์๋ ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
- ํ ์ค ์ฃผ์
- ์ฌ๋ฌ ์ค ์ฃผ์
ํ ์ค ์ฃผ์:
// ํ ์ค ์ฃผ์์ผ๋ก ์ฝ๋ ์์ฒด์ ์ฃผ์ ๋ฌ๊ธฐ
// let firstName = 'Asabeneh'; ํ ์ค ์ฃผ์
// let lastName = 'Yetayeh'; ํ ์ค ์ฃผ์์ฌ๋ฌ ์ค ์ฃผ์:
/*
let location = 'Helsinki';
let age = 100;
let isMarried = true;
This is a Multiple line comment
*/๋ณ์๋ ๋ฐ์ดํฐ์ ์ปจํ ์ด๋ ์ ๋๋ค. ๋ณ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋ ์ฌ์ฉํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ๋ณ์๋ฅผ ์ ์ธํ๋ฉด, ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ ๋น์ด ๋ฉ๋๋ค. ๋ณ์์ ๊ฐ์ ํ ๋นํ๋ฉด์, ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ ๋ฐ์ดํฐ๋ก ์ฑ์์ง๋๋ค. ๋ณ์๋ฅผ ์ ์ธํ๊ธฐ ์ํด์๋ var, let, const ํค์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
ํ๋ก๊ทธ๋จ์ด ๋์๊ฐ๋ฉด์ ๋ณ์์ ๊ฐ์ด ๋ฐ๋๋ ๊ฒฝ์ฐ, let ํค์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ง์ฝ ๋ณ์์ ๊ฐ์ด ์์ ๋ฐ๋์ง ์์ ๊ฒ์ด๋ผ๋ฉด, const ํค์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์๋ก๋ค์ด PI, ๊ตญ๊ฐ๋ช , ์ค๋ ฅ์ ๋ณํ์ง ์์ผ๋ฏ๋ก const ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ด ์ฑ๋ฆฐ์ง์์ var ํค์๋๋ ์ฌ์ฉํ์ง ์์ ๊ฒ์ด๊ณ , ์ฌ์ฉํ์ง ์๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค. ๊ทธ๊ฒ์ ๋ง์ ์ฝ์ ์ ๊ฐ์ง๊ณ ์๊ณ , ์ค๋ฅ๋ฅผ ๋ฐ์ํ๊ธฐ ์ฌ์ด ๋ฐฉ๋ฒ์ ๋๋ค. ๊ฐ ํค์๋์ ์์ธํ ์ฌํญ, ๋ค๋ฅธ ๋ฒ์(scope)์์ ๋ค์์ ์์๋ด ์๋ค. ์ง๊ธ์ ์์์ ์ธ๊ธํ ๋ถ๋ถ์ด๋ฉด ์ถฉ๋ถํฉ๋๋ค.
์ ํจํ ์๋ฐ์คํฌ๋ฆฝํธ ๋ณ์ ์ด๋ฆ์ ์ํด์๋ ์๋์ ๊ฐ์ ๊ท์น์ ๋ฐ๋ผ์ผํฉ๋๋ค:
- ์ซ์๋ก ์์ํ์ง ์์ต๋๋ค.
- ๋ฌ๋ฌ ๊ธฐํธ($), ๋ฐ์ค(_)์ ์ ์ธํ ํน์๋ฌธ์๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ฉ๋๋ค.
- camelCase ๋ค์ด๋ฐ ์ปจ๋ฒค์ ์ ๋ฐ๋ฆ ๋๋ค.
- ๋ณ์ ์ด๋ฆ ๋จ์ด ์ฌ์ด์ ๊ณต๋ฐฑ์ด ์์ด์ผ ํฉ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ๋ณ์๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ด๋ฆ์ง๋ ๋ฒ์ ์์๋ฅผ ํตํด ํ์ธํด ๋ด ์๋ค.
firstName;
lastName;
country;
city;
capitalCity;
age;
isMarried;
first_name;
last_name;
is_married;
capital_city;
num1;
num_1;
_num_1;
$num1;
year2020;
year_2020;์ฒซ ๋ฒ์งธ์ ๋ ๋ฒ์งธ ๋ณ์๋ค์ camelCase ๋ค์ด๋ฐ์ปจ๋ฒค์ ์ ๋ฐ๋ฆ ๋๋ค. ์ฐ๋ฆฌ ์๋ฃ์์๋ camelCase๋ฅผ ์ฌ์ฉํ ์์ ์ ๋๋ค.
๋ค์์ ์ ์ ํ์ง ๋ชปํ ์์์ ๋๋ค:
first-name
1_num
num_#_1์๋ก ๋ค๋ฅธ ์ ํ์ ๋ฐ์ดํฐ๋ก ๋ณ์๋ฅผ ์ ์ธํฉ์๋ค. ๋ณ์๋ฅผ ์ ์ธํ๋ ด๋ let, const ํค์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ณ์ ์ด๋ฆ ๋ค์ ๋ฑํธ์ ๊ฐ์ ์ฌ์ฉํด ๋ด ์๋ค.
// Syntax
let nameOfVariable = value;Examples of declared variables
// ๋ค๋ฅธ ์๋ฃํ์ ๊ฐ์ง๊ณ ์๋ ๋ณ์ ์ ์ธ
let firstName = 'Asabeneh'; // ์ด๋ฆ
let lastName = 'Yetayeh'; // ์ฑ
let country = 'Finland'; // ๋๋ผ
let city = 'Helsinki'; // ์๋
let age = 100; // ๋์ด
let isMarried = true; // ๊ฒฐํผ ์ฌ๋ถ
console.log(firstName, lastName, country, city, age, isMarried);Asabeneh Yetayeh Finland Helsinki 100 true// ๊ฐ๊ฐ ๋ค๋ฅธ ์ซ์ ์๋ฃํ ์ ์ธ
let age = 100; // ์ ์ (๋์ด)
const gravity = 9.81; // ์ค์ (์ค๋ ฅ)
const boilingPoint = 100; // ์ ์ (๋๋ ์ )
const PI = 3.14; // ์ค์ (ํ์ด)
console.log(gravity, boilingPoint, PI);9.81 100 3.14// ์ผํ(,)๋ฅผ ํตํด ๋ณ์๋ฅผ ๊ตฌ๋ถํด์ ์ ์ํ ์ ์์ต๋๋ค.
let name = 'Asabeneh', // ์ด๋ฆ
job = 'teacher', // ์ง์
live = 'Finland'; // ์ฌ๋ ๊ณณ
console.log(name, job, live);Asabeneh teacher Finland01-Day ํด๋์์ index.html ํ์ผ์ ์คํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ฉ์์ง๊ฐ ๋ํ๋ฉ๋๋ค.
๐ ๋น์ ์ ๋๋จํฉ๋๋ค! 1์ผ์ฐจ ๋์ ์ ์๋ฃํ๊ณ , ์ฐ๋ฆฌ๋ ๋ฉ์ ธ์ง๊ณ ์์ต๋๋ค. ์ด์ ๋์ ๊ทผ์ก์ ์ด๋ํด ๋ด ์๋ค!
- ๋ค์์ ์๋ฏธ๋ฅผ ๊ฐ๋ ์ฃผ์์ ๋ง๋ค์ด ๋ด ์๋ค. ์ฃผ์์ ์ฝ๋๋ฅผ ์ฝ์ ์ ์๊ฒ ๋ง๋ญ๋๋ค.
- ๋ ๋ค๋ฅธ ์ฃผ์์ ๋ง๋ค์ด ๋ด ์๋ค. 30DaysOfJavascript์ ์ค์ ๊ฒ์ ํ์ํฉ๋๋ค.
- ์ฌ๋ฌ ์ค ์ฃผ์์ ์ฌ์ฉํด ๋ด ์๋ค. ์ฃผ์์ ์ฝ๊ธฐ ํธํ๊ณ , ์ฌ์ฌ์ฉํ๊ธฐ ์ฝ๊ณ , ์ ๋ณด๋ฅผ ๋ด๊ณ ์์ต๋๋ค
- variable.js ํ์ผ์ ๋ง๋ค๊ณ , ๋ฌธ์์ด ๋ณ์, ๋ถ๋ฆฌ์ธ ๋ณ์, undefined ๋ณ์, null ๋ณ์๋ฅผ ์ ์ธํด ๋ด ์๋ค.
- datatype.js ํ์ผ์ ๋ง๋ค๊ณ typeof ์ฐ์ฐ์ ํตํด์ ๋ฐ์ดํฐ์ ์๋ฃํ์ ํ์ธํด ๋ด ์๋ค. ๋ชจ๋ ๋ณ์๋ฅผ ํ์ธํฉ์๋ค!
- ๊ฐ์ ํ ๋นํ์ง ์๊ณ ๋ณ์๋ฅผ ๋ง๋ค์ด ๋ด ๋๋ค.
- ๊ฐ์ ํ ๋นํ๋ฉด์ ๋ณ์๋ฅผ ๋ง๋ค์ด ๋ด ๋๋ค.
- ๋ณ์ ์ฑ, ์ด๋ฆ, ๊ฒฐํผ ์ฌ๋ถ, ์ฌ๋ ๊ณณ, ๋์ด๋ฅผ ์ฌ๋ฌ ์ค๋ก ์ ์ธํด ๋ด ์๋ค.
- ๋ณ์ ์ฑ, ์ด๋ฆ, ๊ฒฐํผ ์ฌ๋ถ, ์ฌ๋ ๊ณณ, ๋์ด๋ฅผ ๊ฐ๊ฐ ํ ์ค๋ก ์ ์ธํด ๋ด ์๋ค.
- ๋ ๋ณ์ myAge ์ yourAge ๋ฅผ ๋ง๋ค์ด์ ์ด๊ธฐ๊ฐ์ ํ ๋นํ๊ณ , ์ฝ์์ฐฝ์ ๋์ด๋ด ์๋ค.
I am 25 years old.
You are 30 years old.๐ ์ถํ๋๋ฆฝ๋๋ค ! ๐




















