๐ ์กฐ๊ฑด๋ฌธ
- 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 ๊ฐ์ ์ค์ผํ๋ค.
// ์ธ์๊ฐ ํ๋๋ฉด ์๊ดํธ๋ฅผ ์๋ตํด์ค๋ ๋๋ค.
// ์ธ์๊ฐ ์์ผ๋ฉด ์๊ดํธ๋ฅผ ์๋ตํ ์ ์๋ค.