Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ 30์ผ ์ •๋ณต ๐Ÿ˜Ž

# Day Topics
01 ์†Œ๊ฐœ
02 ์ž๋ฃŒํ˜•
03 ๋ถˆ๋ฆฌ์–ธ, ์—ฐ์‚ฐ์ž, ๋‚ ์งœ
04 ์กฐ๊ฑด๋ฌธ
05 ๋ฐฐ์—ด
06 ๋ฐ˜๋ณต๋ฌธ
07 ํ•จ์ˆ˜
08 ๊ฐ์ฒด
09 ๊ณ ์ฐจ ํ•จ์ˆ˜
10 ์ง‘ํ•ฉ๊ณผ ๋งต
11 ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น๊ณผ ์ „๊ฐœ ์—ฐ์‚ฐ์ž
12 ์ •๊ทœํ‘œํ˜„์‹
13 ์ฝ˜์†” ๊ฐ์ฒด ๋ฉ”์„œ๋“œ
14 ์˜ค๋ฅ˜ ํ•ธ๋“ค๋ง
15 ํด๋ž˜์Šค
16 JSON
17 ์›น ์ €์žฅ์†Œ
18 ํ”„๋กœ๋ฏธ์Šค
19 ํด๋กœ์ ธ
20 ํด๋ฆฐ ์ฝ”๋“œ ์ž‘์„ฑ๋ฒ•
21 DOM
22 DOM ๊ฐ์ฒด ์กฐ์ž‘
23 ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ
24 ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ: ํƒœ์–‘๊ณ„
25 ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ: ์„ธ๊ณ„ ๋„์‹œ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” 1
26 ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ: ์„ธ๊ณ„ ๋„์‹œ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” 2
27 ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ: ํฌํŠธํด๋ฆฌ์˜ค
28 ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ: ๋ฆฌ๋”๋ณด๋“œ
29 ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ: ์บ๋ฆญํ„ฐ ์›€์ง์ด๊ธฐ
30 ์ตœ์ข… ํ”„๋กœ์ ํŠธ

๐Ÿ‡ฌ๐Ÿ‡ง English ๐Ÿ‡ช๐Ÿ‡ธ Spanish ๐Ÿ‡ท๐Ÿ‡บ Russian

2์ผ์ฐจ >>

Thirty Days Of JavaScript

๐Ÿ“” 1์ผ์ฐจ

์†Œ๊ฐœ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ 30์ผ ์ •๋ณต ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ฑŒ๋ฆฐ์ง€์— ์ฐธ์—ฌ ๊ฒฐ์ •ํ•˜์‹  ๊ฒƒ์„ ์ถ•ํ•˜๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ด๋ฒˆ ์ฑŒ๋ฆฐ์ง€์—์„œ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด์„œ ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ๋“ค๊ณผ, ์ผ๋ฐ˜์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ํ•ด๋‹น ์ฑŒ๋ฆฐ์ง€๋ฅผ ๋ชจ๋‘ ์™„๋ฃŒํ•˜์…จ๋‹ค๋ฉด, 30DaysOfJavaScript ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ฑŒ๋ฆฐ์ง€ ์™„๋ฃŒ ์ธ์ฆ์„œ๋ฅผ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋„์›€์ด ํ•„์š”ํ•˜๊ฑฐ๋‚˜, ๋‹ค๋ฅธ ์‚ฌ๋žŒ์„ ๋„์™€์ฃผ๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ ํ…”๋ ˆ๊ทธ๋žจ ๊ทธ๋ฃน์— ์—ฐ๋ฝ์„ ์ฃผ์„ธ์š”.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ 30์ผ ์ •๋ณต ์ฑŒ๋ฆฐ์ง€๋Š” ์ดˆ๋ณด์ž์™€ ์ˆ™๋ จ๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์ง€์นจ์„œ์ž…๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์›น์„ ๋‹ค๋ฃจ๋Š” ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ์ €๋Š” ์—ฌ๋Ÿฌ๋ถ„๋“ค์„ ๊ฐ€๋ฅด์น˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์ฆ๊น๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„๋„ ๊ทธ๋ ‡๊ฒŒ ๋˜์…จ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ 30์ผ ์ •๋ณต ์ฑŒ๋ฆฐ์ง€๋ฅผ ๋‹จ๊ณ„๋ณ„๋กœ ์ง„ํ–‰ํ•˜๋ฉด์„œ, ์ธ๋ฅ˜ ์—ญ์‚ฌ์ƒ ๊ฐ€์žฅ ์ธ๊ธฐ์žˆ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ฐฐ์šฐ๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” **์ƒํ˜ธ์ž‘์šฉ์„ ํ•˜๋Š” ์›น์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜, ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ˜น์€ ๋ฐ์Šคํฌํƒ‘ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ๊ฒŒ์ž„**์„ ๋งŒ๋“œ๋Š” ๋ฐ์— ์‚ฌ์šฉ์ด ๋ฉ๋‹ˆ๋‹ค. ์š”์ฆˆ์Œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” **๋จธ์‹ ๋Ÿฌ๋‹๊ณผ AI**๋ฅผ ํ•˜๋Š”๋ฐ์—๋„ ์‚ฌ์šฉ์ด ๋ฉ๋‹ˆ๋‹ค. **์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(JS)**๋Š” ์ตœ๊ทผ ๋ช‡ ๋…„๊ฐ„ ์ธ๊ธฐ๊ฐ€ ์ƒ์Šนํ•˜์—ฌ ์„ ๋‘๋ฅผ ๋‹ฌ๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๊นƒํ—™์—์„œ 6๋…„๋™์•ˆ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์š”๊ตฌ์‚ฌํ•ญ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋Œ€ํ•œ ์„ ์ˆ˜ ์ง€์‹์€ ํ•ด๋‹น ์ฑŒ๋ฆฐ์ง€์—์„œ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ์•„๋ž˜์— ๋Œ€ํ•œ ์š”๊ตฌ์‚ฌํ•ญ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  1. ์—ด์ •
  2. ์ปดํ“จํ„ฐ
  3. ์ธํ„ฐ๋„ท
  4. ๋ธŒ๋ผ์šฐ์ €
  5. ์ฝ”๋“œ ํŽธ์ง‘๊ธฐ

์„ค์ •

์ €๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด ๊ฐœ๋ฐœ์ž, ์ปดํ“จํ„ฐ, ์ธํ„ฐ๋„ท์ด ๋˜๊ธฐ ์œ„ํ•ด์„œ ๊ฐ•ํ•œ ์š•๊ตฌ์™€ ๋™๊ธฐ๋ถ€์—ฌ๊ฐ€ ์žˆ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ด๋Ÿฐ ๊ฒƒ๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด, ํ•ด๋‹น ์ฑŒ๋ฆฐ์ง€๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Node.js ์„ค์น˜

์—ฌ๋Ÿฌ๋ถ„์€ Node.js๊ฐ€ ๋‹น์žฅ์€ ํ•„์š” ์—†์ง€๋งŒ, ๋‚˜์ค‘์„ ์œ„ํ•ด ์„ค์น˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ์‚ฌ์ดํŠธ์—์„œ ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ•ด ์ฃผ์„ธ์š”.

๋…ธ๋“œ ๋‹ค์šด๋กœ๋“œ

๋‹ค์šด๋กœ๋“œ๊ฐ€ ๋์ด ๋‚˜๋ฉด ํŒŒ์ผ์„ ๋”๋ธ” ํด๋ฆญํ•ด์„œ ์—ด๊ณ  ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

๋…ธ๋“œ ์„ค์น˜

์šฐ๋ฆฌ์˜ ๋กœ์ปฌ ์ปดํ“จํ„ฐ์— ํ„ฐ๋ฏธ๋„ ์ฐฝ์„ ์—ด๊ฑฐ๋‚˜, ๋ช…๋ น ํ”„๋กฌํฌํŠธ๋ฅผ ํ†ตํ•ด์„œ ๋…ธ๋“œ๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

asabeneh $ node -v
v12.14.0

ํ•ด๋‹น ์ฑŒ๋ฆฐ์ง€์„ ์ œ์ž‘ํ•  ๋•Œ์—๋Š” Node 12.14.0 ๋ฒ„์ „์„ ์‚ฌ์šฉํ–ˆ์œผ๋‚˜, ํ˜„์žฌ๋Š” Node 14.17.6 ๋ฒ„์ „์„ ๊ถŒ์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ธŒ๋ผ์šฐ์ €

๋ธŒ๋ผ์šฐ์ €๋Š” ๋งŽ์€ ๊ฒƒ๋“ค์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, ์šฐ๋ฆฌ๋Š” ๊ตฌ๊ธ€ ํฌ๋กฌ์„ ๊ฐ•๋ ฅํ•˜๊ฒŒ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ๊ธ€ ํฌ๋กฌ ์„ค์น˜

๊ตฌ๊ธ€ ํฌ๋กฌ์ด ์„ค์น˜๋˜์–ด์žˆ์ง€ ์•Š๋‹ค๋ฉด, ์„ค์น˜๋ฅผ ํ•ด ์ฃผ์„ธ์š”. ์šฐ๋ฆฌ๋Š” ๋ธŒ๋ผ์šฐ์ € ์ฝ˜์†”์ฐฝ์—์„œ ๊ฐ„๋‹จํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด ๋ธŒ๋ผ์šฐ์ € ์ฝ˜์†”์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ตฌ๊ธ€ ํฌ๋กฌ

๊ตฌ๊ธ€ ํฌ๋กฌ ์ฝ˜์†”์ฐฝ ์—ด๊ธฐ

๋ธŒ๋ผ์šฐ์ € ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์— ์žˆ๋Š” ์  3๊ฐœ๋ฅผ ํด๋ฆญํ•˜๊ณ  ์ถ”๊ฐ€ ๋„๊ตฌ -> ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ๋ฐ”๋กœ ๊ฐ€๊ธฐ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ๊ธ€ ํฌ๋กฌ ์ฝ˜์†”์ฐฝ์„ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ๋‹จ์ถ•ํ‚ค ์‚ฌ์šฉ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

Opening chrome

์ฝ˜์†”์ฐฝ์„ ์—ด๊ธฐ์œ„ํ•œ ๋‹จ์ถ•ํ‚ค๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Mac
Command+Option+J

Windows/Linux:
Ctl+Shift+J

Opening console

์ฝ˜์†”์ฐฝ์„ ์—ด๊ณ  ๋‚˜์„œ, ํ‘œ์‹œ๋œ ๋ฒ„ํŠผ์„ ๊ฒฝํ—˜ํ•ด ๋ณด์„ธ์š”. ์šฐ๋ฆฌ๋Š” ์ฝ˜์†”์ฐฝ์—์„œ ๋งŽ์€ ์‹œ๊ฐ„์„ ๋ณด๋‚ด๊ฒŒ ๋  ๊ฒƒ ์ž…๋‹ˆ๋‹ค. ์ฝ˜์†”์ฐฝ์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๊ฐ€ ์ €์žฅ๋˜๋Š” ์œ„์น˜์ž…๋‹ˆ๋‹ค. ๊ตฌ๊ธ€ ํฌ๋กฌ์˜ ์ฝ˜์†”์ฐฝ์˜ V8 ์—”์ง„์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ๊ธฐ๊ณ„ ์ฝ”๋“œ๋กœ ๋ณ€๊ฒฝ์‹œ์ผœ์ค๋‹ˆ๋‹ค.

์ฝ˜์†”์ฐฝ์—์„œ ๊ฐ„๋‹จํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ ์˜ˆ์ œ๋ฅผ ์ ์–ด๋ด…์‹œ๋‹ค.

write code on console

์ฝ˜์†”์ฐฝ์—์„œ ์ฝ”๋“œ ์ž‘์„ฑํ•ด ๋ณด๊ธฐ

์šฐ๋ฆฌ๋Š” ๊ตฌ๊ธ€ ํฌ๋กฌ์ด ์•„๋‹ˆ๋”๋ผ๋„, ์ฝ˜์†”์ฐฝ์—์„œ ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ์ฑŒ๋ฆฐ์ง€๋ฅผ ์œ„ํ•ด์„œ๋Š” ์˜ค์ง ๊ตฌ๊ธ€ ํฌ๋กฌ ์ฝ˜์†”์ฐฝ์—๋งŒ ์ง‘์ค‘ํ•ฉ์‹œ๋‹ค. ์ฝ˜์†”์ฐฝ์„ ์—ด์–ด ์ฃผ์„ธ์š”.

Mac
Command+Option+I

Windows:
Ctl+Shift+I
Console.log๋กœ ์ถœ๋ ฅํ•˜๊ธฐ

์šฐ๋ฆฌ์˜ ์ฒซ ๋ฒˆ์งธ ์ฝ”๋“œ๋Š”, ๋‚ด์žฅ๋˜์–ด์žˆ๋Š” ํ•จ์ˆ˜์ธ **console.log()**์ž…๋‹ˆ๋‹ค. ์ธ์ˆ˜๋กœ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋ฉด, ํ•ด๋‹น ํ•จ์ˆ˜๊ฐ€ ๊ฒฐ๊ณผ๋ฌผ์„ ์ฝ˜์†”์ฐฝ์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” console.log() ํ•จ์ˆ˜์— 'Hello, World'๋ฅผ ์ธํ’‹์œผ๋กœ ์ „๋‹ฌ์„ ํ•ด ๋ด…์‹œ๋‹ค.

console.log('Hello, World!');
Console.log๋กœ ์—ฌ๋Ÿฌ ์ธ์ž ์ถœ๋ ฅํ•˜๊ธฐ

console.log() ํ•จ์ˆ˜๋Š” ๋ฐ˜์ (comma)๋กœ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. console.log(param1, param2, param3)

console log multiple arguments

console.log('Hello', 'World', '!');
console.log('HAPPY', 'NEW', 'YEAR', 2020);
console.log('Welcome', 'to', 30, 'Days', 'Of', 'JavaScript');

์œ„์˜ ์˜ˆ์‹œ ์ฝ”๋“œ์™€ ๊ฐ™์ด, *console.log()*ํ•จ์ˆ˜๋Š” ์—ฌ๋Ÿฌ ์ธ์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถ•ํ•˜๋“œ๋ฆฝ๋‹ˆ๋‹ค! ๋‹น์‹ ์€ *console.log()*๋ฅผ ์ด์šฉํ•ด์„œ ์ฒซ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์„

์šฐ๋ฆฌ๋Š” ์šฐ๋ฆฌ์˜ ์ฝ”๋“œ์— ์ฃผ์„์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์„์€ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ, ์ฝ”๋“œ์˜ ์„ค๋ช…์„ ๋‚จ๊ธฐ๋Š”๋ฐ์— ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ฝ”๋“œ ๋‚ด๋ถ€์— ์ฃผ์„์„ ์‹คํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ //๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์€ ์ฃผ์„์ด๋ฉฐ, /*๋กœ ์‹œ์ž‘ํ•ด์„œ */๋กœ ๋‹ซํžˆ๋Š” ๊ฒƒ ๋˜ํ•œ ์ฃผ์„์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•œ ์ค„ ์ฃผ์„ ์˜ˆ์‹œ

// ์ฒซ ๋ฒˆ์งธ ์ฃผ์„์ž…๋‹ˆ๋‹ค.
// ๋‘ ๋ฒˆ์งธ ์ฃผ์„์ž…๋‹ˆ๋‹ค. // ํ•œ ์ค„ ์ฃผ์„์ž…๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ์ค„ ์ฃผ์„ ์˜ˆ์‹œ

/_ ์—ฌ๋Ÿฌ ์ค„ ์ฃผ์„ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ์ค„ ์ฃผ์„์€ ์—ฌ๋Ÿฌ ์ค„์„ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์›น์„ ๋‹ค๋ฃจ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. _/

๋ฌธ๋ฒ•

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ์ธ๊ฐ„์˜ ์–ธ์–ด์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์˜์–ด ํ˜น์€ ๋‹ค๋ฅธ ๋ชจ๋“  ์–ธ์–ด๋Š” ๋‹จ์–ด๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ๋ฌธ๋ฒ•, ๋ฌธ์žฅ, ๋ณต์žกํ•œ ๋ฌธ์žฅ์„ ์‚ฌ์šฉํ•˜๊ณ  ์˜๋ฏธ์žˆ๋Š” ๋ฉ”์‹œ์ง€๋“ค์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์˜์–ด์—์„œ์˜ ๊ตฌ๋ฌธ์˜ ์˜๋ฏธ๋Š” ์–ธ์–ด์—์„œ ์ž˜ ๋งŒ๋“ค์–ด์ง„ ๋ฌธ์žฅ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๋‹จ์–ด์™€ ๋ฌธ๋ฒ•์˜ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. ๋ฌธ๋ฒ•์˜ ๊ธฐ์ˆ ์ ์ธ ์ •์˜๋Š” ์ปดํ“จํ„ฐ ์–ธ์–ด์—์„œ์˜ ๋ฌธ์žฅ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—๋Š” ๋ฌธ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€, ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ๋ฌธ๋ฒ•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ๋ฒ•์„ ์ž‘์„ฑํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, ํ•ด๋‹น ์ฝ”๋“œ๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์˜ค๋ฅ˜๋ฅผ ์ผ์œผํ‚ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜๋Š” ๋‹ค์Œ์— ์‚ดํŽด๋ด…์‹œ๋‹ค. ์ง€๊ธˆ๋ถ€ํ„ฐ๋Š” ๊ฐ„๋‹จํ•œ ๋ฌธ๋ฒ• ์˜ค๋ฅ˜๋ฅผ ์‚ดํŽด๋ด…์‹œ๋‹ค.

Error

๊ณ ์˜์ ์œผ๋กœ ์‹ค์ˆ˜๋ฅผ ์ €์งˆ๋ €์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ ์ฝ˜์†”์ฐฝ์€ ๊ตฌ๋ฌธ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ด๋Ÿฐ ๊ตฌ๋ฌธ์€ ๋งค์šฐ ์œ ์ตํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ์‹ค์ˆ˜๊ฐ€ ์ผ์–ด๋‚ฌ๋Š”์ง€ ์•Œ๋ ค์ค๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ ํ”ผ๋“œ๋ฐฑ์— ๋Œ€ํ•œ ๊ฐ€์ด๋“œ๋ผ์ธ์„ ์ฝ์œผ๋ฉด์„œ ์šฐ๋ฆฌ๋Š” ๊ตฌ๋ฌธ์„ ์ˆ˜์ •ํ•˜๊ณ  ๋ฌธ๏ฟฝ๏ฟฝ๏ฟฝ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ๋ถ€ํ„ฐ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜๋ฅผ ๊ตฌ๋ณ„ํ•˜๊ณ  ์ œ๊ฑฐํ•˜๋Š” ๊ณผ์ •์„ ๋””๋ฒ„๊น…์ด๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•ด ๋ด…์‹œ๋‹ค:

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() ํ•จ์ˆ˜ ์—†์ด ์ง์ ‘ ์ธ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์•ž์„  ๋งํ•œ ๊ฒƒ์€ ํ•จ์ˆ˜ ์‚ฌ์šฉ์ด ํ•„์ˆ˜์ ์ธ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ์—์„œ ์ผ์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์—, ๋งจ ์•ž ๋ถ€๋ถ„์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ˜์†”์ฐฝ์„ ํ†ตํ•ด์„œ ๋ช…๋ น์–ด๋“ค์„ ๊ฐ€์ง€๊ณ  ๋†€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Arithmetic

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๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€๋งŒ ๋‹ค๋ฅธ ํŽธ์ง‘๊ธฐ๊ฐ€ ๋งˆ์Œ์— ๋“ ๋‹ค๋ฉด, ์›ํ•˜์‹œ๋Š” ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

Vscode

Visual Studio Code๋ฅผ ์„ค์น˜ํ–ˆ๋‹ค๋ฉด, ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•ด ๋ด…์‹œ๋‹ค.

Visual Studio Code ์‚ฌ์šฉ๋ฒ•

Visual Studio Code์˜ ์•„์ด์ฝ˜์„ ๋”๋ธ” ํด๋ฆญํ•ด์„œ ์‹คํ–‰ํ•ฉ์‹œ๋‹ค. ์‹คํ–‰์ด ๋˜์—ˆ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™”๋ฉด์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ผ๋ฒจ์ด ์ ํ˜€์ ธ์žˆ๋Š” ์•„์ด์ฝ˜๋“ค์„ ์‚ฌ์šฉํ•ด ๋ด…์‹œ๋‹ค.

Vscode ui

Vscode add project

Vscode open project

script file

Installing Live Server

running script

coding running

์›น ํŽ˜์ด์ง€์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ ์ ์šฉ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋Š” ์›น ํŽ˜์ด์ง€์— ์„ธ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  • ์ธ๋ผ์ธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
  • ๋‚ด๋ถ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
  • ์™ธ๋ถ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
  • ์—ฌ๋Ÿฌ ์™ธ๋ถ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ

ํ•ด๋‹น ์„น์…˜์—์„œ๋Š” ์›นํŽ˜์ด์ง€์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฐ ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃฐ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

์ธ๋ผ์ธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ

๋ฐ์Šคํฌํƒ‘ ๋“ฑ ์•„๋ฌด ๊ณณ์—์„œ 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()์˜ ์ถœ๋ ฅ๊ฐ’์„ ํ™•์ธํ•ด ๋ด…์‹œ๋‹ค.

js code from vscode

์™ธ๋ถ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ

๋‚ด๋ถ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ, ์™ธ๋ถ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐฉ์‹์€ 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 ํŒŒ์ผ์€ ๋‹ค๋ฅธ ๋ชจ๋“  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ ์•„๋ž˜์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค ์ด๊ฒƒ์€ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

Multiple Script

์ž๋ฃŒํ˜• ์†Œ๊ฐœ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ์—ฌ๋Ÿฌ ์ž๋ฃŒํ˜•๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์ž…๋‹ˆ๋‹ค: ๋ฌธ์ž์—ด, ์ˆซ์ž, ๋ถˆ๋ฆฌ์–ธ, 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๊ฐ’์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ๋ง๋ถ™์—ฌ ์–˜๊ฐ€ํ•˜๋ฉด ํ•จ์ˆ˜๊ฐ€ ์•„๋ฌด ๊ฐ’๋„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์œผ๋ฉด, ๊ทธ๊ฒƒ์€ undefined๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

let firstName;
console.log(firstName); // undefined์ด๋‹ค. ํ• ๋‹น์ด ๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

Null

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๊ฐ’์ด ๋น„์–ด์žˆ์œผ๋ฉด ๋ณ€์ˆ˜๋Š” 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 Finland

01-Day ํด๋”์—์„œ index.html ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

Day one

๐ŸŒ• ๋‹น์‹ ์€ ๋Œ€๋‹จํ•ฉ๋‹ˆ๋‹ค! 1์ผ์ฐจ ๋„์ „์„ ์™„๋ฃŒํ–ˆ๊ณ , ์šฐ๋ฆฌ๋Š” ๋ฉ‹์ ธ์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋‡Œ์™€ ๊ทผ์œก์„ ์šด๋™ํ•ด ๋ด…์‹œ๋‹ค!

๐Ÿ’ป 1์ผ์ฐจ: ์‹ค์Šต

  1. ๋‹ค์Œ์˜ ์˜๋ฏธ๋ฅผ ๊ฐ–๋Š” ์ฃผ์„์„ ๋งŒ๋“ค์–ด ๋ด…์‹œ๋‹ค. ์ฃผ์„์€ ์ฝ”๋“œ๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  2. ๋˜ ๋‹ค๋ฅธ ์ฃผ์„์„ ๋งŒ๋“ค์–ด ๋ด…์‹œ๋‹ค. 30DaysOfJavascript์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.
  3. ์—ฌ๋Ÿฌ ์ค„ ์ฃผ์„์„ ์‚ฌ์šฉํ•ด ๋ด…์‹œ๋‹ค. ์ฃผ์„์€ ์ฝ๊ธฐ ํŽธํ•˜๊ณ , ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ณ , ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค
  4. variable.js ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ , ๋ฌธ์ž์—ด ๋ณ€์ˆ˜, ๋ถˆ๋ฆฌ์–ธ ๋ณ€์ˆ˜, undefined ๋ณ€์ˆ˜, null ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•ด ๋ด…์‹œ๋‹ค.
  5. datatype.js ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  typeof ์—ฐ์‚ฐ์„ ํ†ตํ•ด์„œ ๋ฐ์ดํ„ฐ์˜ ์ž๋ฃŒํ˜•์„ ํ™•์ธํ•ด ๋ด…์‹œ๋‹ค. ๋ชจ๋“  ๋ณ€์ˆ˜๋ฅผ ํ™•์ธํ•ฉ์‹œ๋‹ค!
  6. ๊ฐ’์„ ํ• ๋‹นํ•˜์ง€ ์•Š๊ณ  ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ๋ด…๋‹ˆ๋‹ค.
  7. ๊ฐ’์„ ํ• ๋‹นํ•˜๋ฉด์„œ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ๋ด…๋‹ˆ๋‹ค.
  8. ๋ณ€์ˆ˜ ์„ฑ, ์ด๋ฆ„, ๊ฒฐํ˜ผ ์—ฌ๋ถ€, ์‚ฌ๋Š” ๊ณณ, ๋‚˜์ด๋ฅผ ์—ฌ๋Ÿฌ ์ค„๋กœ ์„ ์–ธํ•ด ๋ด…์‹œ๋‹ค.
  9. ๋ณ€์ˆ˜ ์„ฑ, ์ด๋ฆ„, ๊ฒฐํ˜ผ ์—ฌ๋ถ€, ์‚ฌ๋Š” ๊ณณ, ๋‚˜์ด๋ฅผ ๊ฐ๊ฐ ํ•œ ์ค„๋กœ ์„ ์–ธํ•ด ๋ด…์‹œ๋‹ค.
  10. ๋‘ ๋ณ€์ˆ˜ myAge ์™€ yourAge ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ดˆ๊ธฐ๊ฐ’์„ ํ• ๋‹นํ•˜๊ณ , ์ฝ˜์†”์ฐฝ์— ๋„์–ด๋ด…์‹œ๋‹ค.
I am 25 years old.
You are 30 years old.

๐ŸŽ‰ ์ถ•ํ•˜๋“œ๋ฆฝ๋‹ˆ๋‹ค ! ๐ŸŽ‰

Day 2 >>