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

WINK-(Web & App)/HTML & CSS & JS ์Šคํ„ฐ๋””

[2023 ์‹ ์ž…๋ถ€์› ์‹ฌํ™” ์Šคํ„ฐ๋””] ํ™ฉํ˜„์ง„ #2์ฃผ์ฐจ - ๊ธฐ์ดˆ๋ฌธ๋ฒ• part.2, 3

๋ฐ˜์‘ํ˜•


๐Ÿ“Œ ์กฐ๊ฑด๋ฌธ

  • if๋ฌธ
if(์กฐ๊ฑด1){ ์กฐ๊ฑด1์ด ์ฐธ์ผ ๋•Œ ์‹คํ–‰๋  ์ฝ”๋“œ }
// ์ฝ”๋“œ๊ฐ€ ํ•œ ์ค„ ์ผ๋•Œ๋Š” ์ค‘๊ด„ํ˜ธ๋ฅผ ์ƒ๋žตํ•ด๋„ ๋œ๋‹ค.
else if(์กฐ๊ฑด2){ ์กฐ๊ฑด2๊ฐ€ ์ฐธ์ผ ๋•Œ ์‹คํ–‰๋  ์ฝ”๋“œ }
else{ ๋ชจ๋“  ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ผ ๋•Œ ์‹คํ–‰๋  ์ฝ”๋“œ }

โš ๏ธ์ฃผ์˜ํ•  ์ 
     : ํ•˜๋‚˜์˜ ์กฐ๊ฑด๋ฌธ์„ ์ž‘์„ฑํ•  ๋•Œ if, else๋Š” ํ•œ ๋ฒˆ๋งŒ ์‚ฌ์šฉ, if๋กœ ์‹œ์ž‘, else๋กœ ๋๋‚˜์•ผํ•จ(else๋Š” ์—†์–ด๋„ ๋œ๋‹ค.)

 

  • switch๋ฌธ
    (if๋ฌธ๊ณผ์˜ ์ฐจ์ด์ : ๋™์ผํ•œ ์กฐ๊ฑด์ด ์ฃผ์–ด์ง€๊ณ  ๊ทธ ์กฐ๊ฑด์˜ ๊ฐ’์— ๋”ฐ๋ผ์„œ ๋‹ค๋ฅธ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ํ•จ)
switch(์กฐ๊ฑด){
	case ๊ฐ’:
		์‹คํ–‰ํ•  ์ฝ”๋“œ
		break;
	case ๊ฐ’:
		์‹คํ–‰ํ•  ์ฝ”๋“œ
		break;
	default:
		์œ„์˜ ๊ฐ’ ์ค‘ ์ฐธ์ด ๋˜๋Š” ๊ฒƒ์ด ์—†์„ ๊ฒฝ์šฐ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ
}

โš ๏ธ์ฃผ์˜ํ•  ์ 
      : break๋ฅผ ์จ์ค˜์•ผํ•œ๋‹ค.

 

+) ์˜ˆ์ œ์ฝ”๋“œ

const number = 10;

// if๋ฌธ
if (number % 2 == 0) console.log("์ง์ˆ˜");
else console.log("ํ™€์ˆ˜");


// switch๋ฌธ
switch (number % 2){
	case 0:
		console.log("์ง์ˆ˜");
		break;
	case 1:
		console.log("ํ™€์ˆ˜");
		break;
}

๐Ÿ“Œ ๋ฐ˜๋ณต๋ฌธ

  • for๋ฌธ
    • break โฉ ๋ฐ˜๋ณต๋ฌธ์„ ๋น ์ ธ๋‚˜์˜ค๊ฒŒ ํ•œ๋‹ค.
    • continue โฉ ํ˜„์žฌ ๋ฐ˜๋ณต๋งŒ ์ข…๋ฃŒํ•˜๊ณ  ๋‹ค์Œ ๋ฒˆ ๋ฐ˜๋ณต์œผ๋กœ ๋„˜์–ด๊ฐ€๊ฒŒ ํ•œ๋‹ค.
for (์ดˆ๊ธฐ์‹; ์กฐ๊ฑด์‹; ์ฆ๊ฐ์‹;) {
	์‹คํ–‰๋  ์ฝ”๋“œ
}

// ์ดˆ๊ธฐ์‹๊ณผ ์ฆ๊ฐ์‹์„ ์ƒ๋žตํ•˜๋Š” ๋ฐฉ๋ฒ•
let i = 0;  // 1. ๋ณ€์ˆ˜๋ฅผ ์œ„์— ์„ ์–ธํ•˜๊ณ  ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.

for(; i <5; ){
	console.log(i++);  // 2. for๋ฌธ ๋ธ”๋Ÿญ ์•ˆ์— ์ฆ๊ฐ์‹์„ ๋„ฃ๋Š”๋‹ค.
}

 

  • for of๋ฌธ
    : ๋ฐ˜๋ณต์ด ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด(๋ฐฐ์—ด, ๋ฌธ์ž์—ด)์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ, ์ฃผ์–ด์ง„ ๊ฐ์ฒด๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ์ˆœํšŒํ•˜๋ฉด์„œ ์ฃผ์–ด์ง„ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ์‹
const arr = [1, 2, 3]

for (const i of arr) {
	console.log(i);
}
// result: 1 2 3 

 

  • while๋ฌธ
    : ์กฐ๊ฑด์ด ์ฐธ์ผ ๋™์•ˆ ๊ณ„์† ๋ฐ˜๋ณตํ•˜๋Š” ๋ฐ˜๋ณต๋ฌธ
let i = 0;

while(i < 10){  // i<10๋ฅผ ๋งŒ์กฑํ•˜๋Š” ๋™์•ˆ ๋ฐ˜๋ณต์ด ๊ณ„์† ์ง„ํ–‰๋œ๋‹ค.
	console.log(i++);
}

 

  • do while๋ฌธ
    • ์กฐ๊ฑด๋ฌธ์˜ ์กฐ๊ฑด์„ ์‹œ์ž‘์ด ์•„๋‹Œ ๋์—์„œ ํŒ๋ณ„ํ•œ๋‹ค.
    • while๋ฌธ๊ณผ์˜ ์ฐจ์ด์ : ๋ฌด์กฐ๊ฑด ํ•œ ๋ฒˆ์€ ์‹คํ–‰์ด ๋œ๋‹ค.
let i = 0;

do{
	console.log(i++);
} while(i < 10)  // ์กฐ๊ฑด์„ ๋ฐ˜๋ณต๋ฌธ ๋์— ์ž‘์„ฑํ•œ๋‹ค.

๐Ÿ“Œ ํ•จ์ˆ˜

  • ์–ด๋–ค ๋™์ž‘์„ ํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ ์ง‘ํ•ฉ์„ ์˜๋ฏธํ•œ๋‹ค.
  • ๋ฐ˜๋ณต์ ์ธ ๋™์ž‘์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.
funtion bok(main){ // ์ธ์ž๋ฅผ ๋„ฃ๋Š” ๊ณต๊ฐ„ (๋น„์›Œ๋‘ฌ๋„ ๋œ๋‹ค)
	console.log(`${main} ๋ณถ์Œ๋ฐฅ`);
}

bok('์ƒˆ์šฐ');
bok('์ œ์œก');

funtion sum(a, b){  // ์ธ์ž๊ฐ€ ๋‘ ๊ฐœ์ผ ๊ฒฝ์šฐ
	console.log(a+b);
}

sum(10, 20);

 

  • ์ธ์ž: ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์ „๋‹ฌํ•˜๋Š” ๊ฐ’ = ํ•จ์ˆ˜์˜ ์ž…๋ ฅ ๊ฐ’ = arguments
  • ๋งค๊ฐœ๋ณ€์ˆ˜: ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•  ๋•Œ ํ•„์š”ํ•œ ์ธ์ž = ํ•จ์ˆ˜์˜ ์ž…๋ ฅ ๋ณ€์ˆ˜ = parameter
  • ์ „์—ญ ๋ณ€์ˆ˜(๊ธ€๋กœ๋ฒŒ ๋ณ€์ˆ˜): ํ•จ์ˆ˜ ์™ธ๋ถ€์—์„œ ์„ ์–ธ๋œ ๋ณ€์ˆ˜, ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๋กœ์ปฌ ๋ณ€์ˆ˜: ๋‚ด๋ถ€์— ์„ ์–ธ๋œ ๋ณ€์ˆ˜
    +) ๋งŒ์•ฝ ์™ธ๋ถ€์™€ ๋‚ด๋ถ€์— ์ด๋ฆ„์ด ๊ฐ™์€ ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋œ๋‹ค๋ฉด? ํ•จ์ˆ˜๋Š” ๋‚ด๋ถ€์— ์žˆ๋Š” ๋กœ์ปฌ ๋ณ€์ˆ˜์—๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.
// const b = 10; -> ์ด๋ ‡๊ฒŒ ๋ฐ–์œผ๋กœ ๋นผ๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์ง€ ์•Š๋Š”๋‹ค.

funtion a(){
	const b = 10; // b๋ผ๋Š” ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 
	console.log(b);
}

a();  // result : 10
console.log(b);  // reference error

→ ์œ„์˜ ์ฝ”๋“œ์—์„œ error ๊ฐ€ ๋‚˜๋Š” ์ด์œ :

     ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„(scope)๊ฐ€ ์ค‘๊ด„ํ˜ธ๋กœ ๊ฐ์‹ธ์ง„ ๋ธ”๋ก (block) ์•ˆ์œผ๋กœ ์ œํ•œ๋˜๊ธฐ ๋•Œ๋ฌธ
     (ํ•จ์ˆ˜ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€)

 

  • ํ•จ์ˆ˜ ์ธ์ž์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์ค˜๋„ ๊ดœ์ฐฎ์„๊นŒโ“โ“
funtion sum(a, b){  // ์ธ์ž๊ฐ€ ๋‘ ๊ฐœ์ผ ๊ฒฝ์šฐ
	console.log(a+b);
}

sum(10);  // 1. ์ธ์ž์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์ฃผ์–ด๋„ ์–ด๋– ํ•œ ์—๋Ÿฌ๋„ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.
sum(10, 20, 30)  // 2. ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์ง€ ์•Š๊ณ  30์ด๋ผ๋Š” ๊ฒฐ๊ณผ๊ฐ’์ด ๋‚˜์˜จ๋‹ค.

๐ŸŽ€ 1๋ฒˆ ์˜ˆ์‹œ์˜ ๊ฒฐ๊ณผ

→ ์ด๋ฏธ ์ธ์ž๋“ค์€ undefined๋ผ๋Š” ๋””ํดํŠธ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ฆ‰, ์ธ์ž๋ฅผ ํ•˜๋‚˜๋งŒ ์ „๋‹ฌํ•ด๋„ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์ง€ ์•Š๋Š”๋‹ค.
     sum(10)์€ sum(10, undefined)์™€ ๊ฐ™๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

     +) ๋””ํดํŠธ ๊ฐ’์„ ๋ถ€์—ฌํ•  ์ˆ˜๋„ ์žˆ๋‹ค.  โฉ sum(a, b = 0)

 

๐ŸŽ€ 2๋ฒˆ ์˜ˆ์‹œ์˜ ๊ฒฐ๊ณผ

→ ์ธ์ž๋ฅผ ์ดˆ๊ณผํ•ด์„œ ๋ณด๋‚ด๋„ arguments ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์ง€ ์•Š๋Š”๋‹ค.

     ( arguments: ์šฐ๋ฆฌ๊ฐ€ ๋ณด๋‚ธ ์ธ์ž๊ฐ€ ๋ช‡ ๊ฐœ๊ฐ€ ๋˜์—ˆ๋“  ์ „๋ถ€ ๋ฐ›์•„์„œ ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์ €์žฅ, ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์ค€๋‹ค.)

 

  • ๋‚˜๋จธ์ง€ ๋งค๊ฐœ๋ณ€์ˆ˜(๋ ˆ์ŠคํŠธ ํŒŒ๋ผ๋ฏธํ„ฐ)
    : ์ง€์ •ํ•œ ์ธ์ž๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋ชจ๋“  ์ธ์ž๋“ค์„ ๋ฐฐ์—ด๋กœ ๋ฌถ์–ด์„œ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ
function print(a, b, ...rest){
		console.log(a);
		console.log(b);
}

print(10, 20, 30, 40, 50, 60, 70);
// result: 10, 20, [30, 40, 50, 60, 70]
// ๋‚˜๋จธ์ง€ ๊ฐ’๋“ค์„ rest๋ผ๋Š” ์ด๋ฆ„์˜ ๋ฐฐ์—ด์— ๋‹ค ์ €์žฅ๋œ๋‹ค.

 

  • return
    : ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” ๊ฐ’
funtion sum(a, b){  
	return a + b;
}

console.log(sum(10, 20));

 

  • ํ•จ์ˆ˜ ํ‘œํ˜„์‹
    : js์—์„œ๋Š” ํ•จ์ˆ˜๋ฅผ ํ•˜๋‚˜์˜ ๊ฐ’์œผ๋กœ ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•จ์ˆ˜๋ฅผ ๋ณ€์ˆ˜์— ๊ฐ’์„ ๋Œ€์ž…ํ•˜๋“ฏ์ด ํ‘œํ˜„์‹์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
function sum(a, b){
	console.log(a + b);
}

// ํ•จ์ˆ˜์˜ ํ‘œํ˜„์‹
const sum = function (a, b){
	console.log(a + b);
}

sum(10, 20); // ํ•จ์ˆ˜์˜ ํ‘œํ˜„์‹์œผ๋กœ ํ•ด๋„ ๊ฒฐ๊ณผ๊ฐ’์€ ๋˜‘๊ฐ™์ด ์ถœ๋ ฅ๋œ๋‹ค.

 

  • ํ™”์‚ดํ‘œ ํ•จ์ˆ˜
const sum = (a, b) => console.log(a, b); 
// ์ฝ”๋“œ๊ฐ€ ํ•œ ์ค„์ด๋ฉด ์ค‘๊ด„ํ˜ธ์™€ return(์ž๋™์œผ๋กœ)์„ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค.
// ๊ทธ๋Ÿฌ๋‚˜ ์ค‘๊ด„ํ˜ธ๊ฐ€ ์žˆ์„ ๋•Œ๋Š”, return ๊ฐ’์„ ์ค˜์•ผํ•œ๋‹ค.
// ์ธ์ž๊ฐ€ ํ•˜๋‚˜๋ฉด ์†Œ๊ด„ํ˜ธ๋ฅผ ์ƒ๋žตํ•ด์ค˜๋„ ๋œ๋‹ค. 
// ์ธ์ž๊ฐ€ ์—†์œผ๋ฉด ์†Œ๊ด„ํ˜ธ๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์—†๋‹ค.
๋ฐ˜์‘ํ˜•