๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋…์„œ ๋ชฉ๋ก/๋ชจ๋”ฅ๋‹ค Modern JS Deep Dive

[๋ชจ๋”ฅ๋‹ค] 08์žฅ ์ œ์–ด๋ฌธ

728x90

(์ˆ˜์ • 23.4.29)

 

์ œ์–ด๋ฌธ : ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ฝ”๋“œ ๋ธ”๋ก์„ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ๋ฐ˜๋ณต ์‹คํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. (์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ)

์ œ์–ด๋ฌธ, ํŠนํžˆ for ๋ฌธ์„ ์ดํ•ดํ•˜๋Š” ๊ฑด ๋งค์šฐ ์ค‘์š”.

์ œ์–ด๋ฌธ์€ ์ฝ”๋“œ์˜ ํ๋ฆ„์„ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ค์–ด ๊ฐ€๋…์„ฑ์„ ํ•ด์น˜๋Š” ๋‹จ์ ์ด ์žˆ์Œ. 

=> ๊ฐ€๋…์„ฑ์ด ์ข‹์ง€ ์•Š์€ ์ฝ”๋“œ๋Š” ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์›์ธ์ด ๋จ. 

 

 

 

 

๐Ÿฆ‘ 8.1 ๋ธ”๋ก๋ฌธ

 

0๊ฐœ ์ด์ƒ์˜ ๋ฌธ์„ ์ค‘๊ด„ํ˜ธ๋กœ ๋ฌถ์€ ๊ฒƒ.

์ฝ”๋“œ ๋ธ”๋ก ๋˜๋Š” ๋ธ”๋ก์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•จ. 

ํ•˜๋‚˜์˜ ์‹คํ–‰๋‹จ์œ„. ์ž์ฒด ์ข…๊ฒฐ์„ฑ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์„ธ๋ฏธ์ฝœ๋ก  ์•ˆ๋ถ™ํž˜. 

 

 

 

 

 ๐Ÿฆ‘ 8.2 ์กฐ๊ฑด๋ฌธ

 

์กฐ๊ฑด๋ฌธ์€ ์ฃผ์–ด์ง„ ์กฐ๊ฑด์‹์˜ ํ‰๊ฐ€ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ์ฝ”๋“œ ๋ธ”๋ก์˜ ์‹คํ–‰์„ ์…œ์ •ํ•จ. 

 

 

8.2.1 if... else ๋ฌธ

 

if .. else if.. else 

if ๋ฌธ ๋‚ด์˜ ์กฐ๊ฑด์‹์€ ๋ถˆ๋ฆฌ์–ธ ๊ฐ’์œผ๋กœ ํ‰๊ฐ€ ๋˜์–ด์•ผ ํ•จ.

boolean์ด ์•„๋‹ˆ๋ผ๋ฉด ๊ฐ•์ œ ๋ณ€ํ™˜๋˜๊ธฐ๋„ ํ•จ.

else if ๋ฌธ๊ณผ else ๋ฌธ์€ ์˜ต์…˜์ž„. 

 

์ฝ”๋“œ ๋ธ”๋ก ๋‚ด์˜ ๋ฌธ์ด ํ•˜๋‚˜ -> ์ค‘๊ด„ํ˜ธ ์ƒ๋žต ๊ฐ€๋Šฅ

 

๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ์„ธ๊ฐ€์ง€ -> ์‚ผํ•ญ ์—ฐ์‚ฐ์ž ๋ฐ”๊ฟ”์“ฐ๊ธฐ ๊ฐ€๋Šฅํ•˜๋‹ค.

์‚ผํ•ญ์—ฐ์‚ฐ์ž๋Š” ๊ฐ’์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ์— ๋ณ€์ˆ˜์— ํ• ๋‹น ํ•  ์ˆ˜๋„ ์žˆ๊ณ , 

์‚ผํ•ญ ์—ฐ์‚ฐ์ž ๋‚ด์— ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ์“ธ ์ˆ˜๋„ ์žˆ๋‹ค.

์—ฌ๋Ÿฌ ์ค„์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ if.. else ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Œ. 

 

 

8.2.2 switch ๋ฌธ

 

์ฃผ์–ด์ง„ ํ‰๊ฐ€์‹์„ ํ‰๊ฐ€ -> ๊ทธ ๊ฐ’๊ณผ ์ผ์น˜ํ•˜๋Š” ํ‘œํ˜„์‹์„ ๊ฐ–๋Š” case ๋ฌธ์œผ๋กœ ์‹คํ–‰ ํ๋ฆ„์„ ์˜ฎ๊น€

case ๋ฌธ์€ ์ƒํ™ฉ์„ ์˜๋ฏธํ•˜๋Š” ํ‘œํ˜„์‹์„ ์ง€์ •, ์ฝœ๋ก ์œผ๋กœ ๋งˆ์นจ.

switch(ํ‘œํ˜„์‹){
	 case ํ‘œํ˜„์‹1 :
      ์‹คํ–‰๋  ๋ฌธ;
      break;
     case ํ‘œํ˜„์‹2 :
      ์‹คํ–‰๋  ๋ฌธ;
      break;
     default:
      ์ผ์น˜ํ•˜๋Š” case๊ฐ€ ์—†์„ ๋•Œ ์‹คํ–‰๋  ๋ฌธ;
}

๋ถˆ๋ฆฌ์–ธ ๊ฐ’์ธ ๋…ผ๋ฆฌ์  ์ฐธ ๊ฑฐ์ง“ ๋ณด๋‹ค๋Š” ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์— ๋”ฐ๋ผ ์‹คํ–‰ํ•  ์ฝ”๋“œ ๋ธ”๋ก์„ ๊ฒฐ์ •ํ•  ๋•Œ ์‚ฌ์šฉ

์ผ์น˜ํ•˜๋Š” case๊ฐ€ ์—†๋‹ค๋ฉด defualt ๋ฌธ์œผ๋กœ ์ด๋™ํ•จ. 

default ๋ฌธ์€ ์„ ํƒ์‚ฌํ•ญ. 

 

๐ŸŽต ํด ์Šค๋ฃจ fall through

: ๊ฐ ์‹คํ–‰๋  ๋ฌธ์— break ์•ˆ์จ์ฃผ๋ฉด ๋ชจ๋“  case ๋ฅผ ์‹คํ–‰ํ•˜๋ฉฐ default ๊นŒ์ง€ ๋‚ด๋ ค๊ฐˆ ์ˆ˜๋„ ์žˆ์Œ.

-> case ๋ฌธ ๋งˆ์ง€๋ง‰์— break๋ฌธ์„ ์•ˆ์จ์คฌ๊ธฐ ๋•Œ๋ฌธ. 

default ๋ฌธ์—๋Š” break ๋ฌธ์„ ์ƒ๋žตํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ . 

ํด์Šค๋ฃจ๊ฐ€ ์œ ์šฉํ•œ ๊ฒฝ์šฐ๋„ ์กด์žฌํ•จ.

->์—ฌ๋Ÿฌ๊ฐœ์˜ ์กฐ๊ฑด์„ ํ•˜๋‚˜์˜ ์กฐ๊ฑด์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ. ex) ์œค๋…„์ธ์ง€ ํŒ๋‹จํ•ด์„œ 2์›”์˜ ์ผ์ˆ˜๋ฅผ ๊ณ„์‚ฐ

 

์กฐ๊ฑด์ด ๋„ˆ๋ฌด ๋งŽ์€ ๊ฒฝ์šฐ switch ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. 

 

 

 

 

๐Ÿฆ‘ 8.3 ๋ฐ˜๋ณต๋ฌธ

 

์กฐ๊ฑด์‹์˜ ํ‰๊ฐ€ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ด๋ฉด ์ฝ”๋“œ ๋ธ”๋ก์„ ์‹คํ–‰ํ•จ. 

์กฐ๊ฑด์‹์ด ๊ฑฐ์ง“์ด ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต.

 

 

8.3.1 for ๋ฌธ

 

for (let i = 0; i < array.length; i++) {
    const element = array[i];
    
}

for๋ฌธ์˜ ๋ณ€์ˆ˜ ์„ ์–ธ๋ฌธ, ์กฐ๊ฑด์‹, ์ฆ๊ฐ์‹์€ ๋ชจ๋‘ ์˜ต์…˜์ด๋ฏ€๋กœ ๋ฐ˜๋“œ์‹œ ์‚ฌ์šฉํ•  ํ•„์š”๋Š” ์—†๋‹ค.

์–ด๋–ค ์‹๋„ ์„ ์–ธํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฌดํ•œ๋ฃจํ”„๊ฐ€ ๋จ. 

 

 

8.3.2 while ๋ฌธ

 

์ฃผ์–ด์ง„ ์กฐ๊ฑด์‹์˜ ํ‰๊ฐ€๊ฐ€ ์ฐธ์ด๋ฉด ์ฝ”๋“œ๋ธ”๋ก์„ ๊ณ„์†ํ•ด์„œ ๋ฐ˜๋ณต ์‹คํ–‰ํ•จ

๐ŸŽต for๋ฌธ์€ ๋ฐ˜๋ณตํšŸ์ˆ˜๊ฐ€ ๋ช…ํ™•ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๊ณ  while ๋ฌธ์€ ๋ฐ˜๋ณต ํšŸ์ˆ˜๊ฐ€ ๋ถˆ๋ถ„๋ช…ํ•  ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

while ๋ฌธ์˜ ์กฐ๊ฑด์‹์ด ์–ธ์ œ๋‚˜ ์ฐธ์ด๋ฉด ๋ฌดํ•œ๋ฃจํ”„๊ฐ€ ๋˜๋ฏ€๋กœ ์ฃผ์˜

๋ฌดํ•œ๋ฃจํ”„๋ฅผ ํƒˆ์ถœํ•˜๊ธฐ ์œ„ํ•ด์„  while๋ฌธ ๋‚ด์— if ๋ฌธ์œผ๋กœ ์กฐ๊ฑด์„ ๊ฑด ํ›„ break; ๋ฅผ ์จ์ฃผ๋ฉด ๋œ๋‹ค. 

 

 

8.3.3 do whille ๋ฌธ

 

๋ฌด์กฐ๊ฑด ํ•œ๋ฒˆ ์ด์ƒ ์‹คํ–‰ ํ›„, while ๋ฌธ ์‹คํ–‰. 

=> ์ฝ”๋“œ๋ฅผ ๋จผ์ € ์‹คํ–‰ํ•œ ํ›„, ์กฐ๊ฑด์‹์„ ํ‰๊ฐ€ํ•จ

let count = 0;
do{ 
console.log(count);
count++;
} while(count < 3);

-> count ๊ฐ€ 3๋ณด๊ฐ€ ์ž‘์„ ๋•Œ๊นŒ์ง€ ์ฝ”๋“œ ๋ธ”๋ก์„ ๋ฐ˜๋ณต ์‹คํ–‰ํ•จ. 

 

 

 

 

๐Ÿฆ‘ 8.4 break ๋ฌธ 

 

break ๋ฌธ์€ ์ฝ”๋“œ ๋ธ”๋ก ํƒˆ์ถœํ•˜๋Š” ๋ฌธ.

๋ ˆ์ด๋ธ”๋ฌธ, ๋ฐ˜๋ณต๋ฌธ ๋˜๋Š” switch ๋ฌธ์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ. 

 

๐ŸŽต ๋ ˆ์ด๋ธ” ๋ฌธ

์‹๋ณ„์ž๊ฐ€ ๋ถ™์€ ๋ฌธ์„ ์˜๋ฏธํ•จ.

ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ์ˆœ์„œ๋ฅผ ์ œ์–ดํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•จ.

(switch ๋ฌธ์˜ case ๋ฌธ๊ณผ default ๋ฌธ๋„ ๋ ˆ์ด๋ธ” ๋ฌธ์ž„.) 

foo: console.log('foo');

{break foo; }ํ•˜๋ฉด ํƒˆ์ถœ๋จ. 

๊ทผ๋ฐ ๊ฐ€๋…์„ฑ์ด ๋‚˜๋น ์ง€๊ณ  ์˜ค๋ฅ˜ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์•„์ ธ ์‚ฌ์šฉ์€ ๊ถŒ์žฅํ•˜์ง„ ์•Š์Œ. 

 

 

 

๐Ÿฆ‘ 8.5 Continue ๋ฌธ 

 

๋ฐ˜๋ณต๋ฌธ์˜ ์ฝ”๋“œ ๋ธ”๋ก ์‹คํ–‰์„ ํ˜„ ์‹œ์ ์—์„œ ์ค‘๋‹จํ•˜๊ณ , 

๋ฐ˜๋ณต๋ฌธ์˜ ์ฆ๊ฐ์‹์œผ๋กœ ์‹คํ–‰ ํ๋ฆ„์„ ์ด๋™์‹œํ‚จ๋‹ค. 

break ๋ฌธ์ฒ˜๋Ÿผ ํƒˆ์ถœํ•˜์ง€ ์•Š์Œ. 

 

 

 

for (let i = 0; i < string.length; i++) {
if(string[i] === search) count++;    
}

์ด๊ฑฐ๋ž‘ ๊ฐ™์Œ. 

์‹คํ–‰ํ•  ์ฝ”๋“œ๊ฐ€ ํ•œ์ค„์ด๋ผ๋ฉด countinue ๋ฌธ์„ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ๋งˆ๋‹ค ๊ฐ„ํŽธํ•˜๊ณ  ๊ฐ€๋…์„ฑ๋„ ์ข‹๋‹ค. 

 

ํ•˜์ง€๋งŒ if ๋ฌธ ๋‚ด์—์„œ ์‹คํ–‰ํ•ด์•ผํ•  ์ฝ”๋“œ๊ฐ€ ๊ธธ๋‹ค๋ฉด ๋“ค์—ฌ์“ฐ๊ธฐ๊ฐ€ ํ•œ ๋‹จ๊ณ„ ๋” ๊นŠ์–ด์ง€๋ฏ€๋กœ

continue ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋…์„ฑ์ด ์ข‹๋‹ค. 

 

 

728x90
๋ฐ˜์‘ํ˜•