์ด๋ฐ ํ์์ธ๋ฐ, ์์ ๋จผ์ ๋ด
์๋ค!!
const name = "solmi";
if (name === "solmi"( { //๋ง์ฝ name์ ๊ฐ์ด "solmi"๋ฉด
console.log("Welcome, solmi!"); //Welcome, solmi!๋ฅผ ์ถ๋ ฅํ๊ณ
} else if (name === "kang"){ //๋ง์ฝ name์ ๊ฐ์ด "solmi"๋ ์๋์ง๋ง, "kang"๋ผ๋ฉด
console.log("Hi, Kang!"); // Hi, Kang!์ ์ถ๋ ฅํ๊ณ
} else { //name์ ๊ฐ์ด "solmi"๋ ์๋๊ณ "kang"๋ ์๋๋ผ๋ฉด
console.log("unkwnon"); //unkwnon์ ์ถ๋ ฅ
}
if aa๋ผ๋ฉด A ์ถ๋ ฅ, else if ์๋๊ณ bb๋ผ๋ฉด B ์ถ๋ ฅ, else ๊ทธ๊ฒ๋ ์๋๋ฉด C ์ถ๋ ฅ! ๊ฐใ
ก๋จ์ฐ
๐๐ปโโ๏ธ ์ฌ๋ฌ๊ฐ์ง ๊ฒฝ์ฐ ์ค ์กฐ๊ฑด์ ๋ง๋๊ฑด ๋ชจ๋ ์คํํ๊ณ ์ถ์ ๋
if๋ฌธ์ ์ธ๋else if
๋ฅผ ๊ฑฐ์ ์ธํธ์ฒ๋ผ ์ฌ์ฉํ๋๋ฐ...let a =15, b = 4 if (a๋ 5์ ๋ฐฐ์) {} // a๋ ์ฌ๊ธฐ์ ๊ฑธ๋ฆฌ๊ณ // b๋ ์ฌ๊ธฐ์ ์๊ฑธ๋ฆฌ๊ณ if (a๋ 3์ ๋ฐฐ์) {} // a๋ ์ฌ๊ธฐ์๋ ๊ฑธ๋ฆฌ๊ณ // b๋ ์ฌ๊ธฐ์๋ ์๊ฑธ๋ฆฌ๊ณ if (a๋ 2์ ๋ฐฐ์) {} // a๋ ์ฌ๊ธฐ์๋ ์๊ฑธ๋ฆฌ๊ณ // b๋ ์ฌ๊ธฐ์๋ ๊ฑธ๋ฆฌ๊ณ
์ด๋ฐ์์ผ๋ก if๋ฌธ์ ์ฌ๋ฌ๊ฐ ์ฌ์ฉํ ์ ์๋ค!!!
๐๐ปโโ๏ธ If๋ฅผ ๊ฐ๋จํ๊ฒ ์ธ ์ ์๋ Ternary operator (์ผํญ ์ฐ์ฐ์)
console.log(name === "solmi" ? "yes" : "no");
?
๊ฐif
์ ์ญํ ์ ํ๋ค.
name === "solmi"
๊ฐ ๋ง์ผ๋ฉด yes๋ฅผ ์ถ๋ ฅ! ์๋๋ฉด no๋ฅผ ์ถ๋ ฅ!
Ternary operator๋ฅผ ์ฌ์ฉํด์ ๊ณ์ if else if else if....๋ฌถ์ด๋๊ฐ๋ฉด ์ฝ๋์ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋ฏ๋ก, ๊ทธ๋ด ๊ฒฝ์ฐ์๋if
๋๋,switch
๋ฅผ ์ฌ์ฉํ๋๊ฒ ์ข๋ค!
const browser = "IE";
switch (browser){
case "IE" : //browser์ ๊ฐ์ด "IE"์ด๋ฉด
console.log("go aray!!"); //go away!! ๋ฅผ ์ถ๋ ฅ
break; //ํ๊ณ ๋์ ๋ฉ์ถ๋ค. break ๋ฅผ ์จ์ฃผ์ง ์์ผ๋ฉด, ๋ฐ๋ก ๋ค์ case ์์ญ์ด ๋ค์ด์ด ์คํ๋๋ ๊ผญ ์จ์ฃผ์!
case "Chrome" : //browser์ ๊ฐ์ด "IE"๊ฐ ์๋๋ฉด, if์ else์ฒ๋ผ ์๋์ค์ ๋ช
๋ น์ ์คํํ๊ฒ ๋๋ค.
case "Firefox" : //break๊ฐ ์์ผ๋ฉด ์๋ ์ค์ ์ฝ๋๋ ์คํ๋๋ ์ ์ ์ด์ฉํด์, ๊ฐ์ ๊ฐ์ ์ถ๋ ฅํ๊ณ ์ ํ ๋ ์ด๋ ๊ฒ ์งง๊ฒ ์
๋ ฅํ ์ ์๋ค.
console.log("I love you!");
break;
default : //์์ ๊ฐ์ด ๋ชจ๋ ์๋ ๋ ์คํ๋๋ค.
console.log("same all");
break;
}
ํ๋์ ๋ณ์์ ๋ง์ ๊ฒฝ์ฐ์ ์๊ฐ ์๊ฑฐ๋,
typescript์์ ์ ํด์ ธ์๋ type์ ๊ฒ์ฌํ ๋๋ if
์์ if..else..if..else..ํ์ง ๋ง๊ณ !
switch
๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋
์ฑ์ด ์ข๋ค.
let i = 3;
while (i > 0) { //i๊ฐ 0๋ณด๋ค ํฌ๋? => ์!
console.log(`while: ${i}`); //i๋ฅผ ์ถ๋ ฅํ๊ณ ,
i--; //i์ ๊ฐ์ 1 ๊ฐ์์ํค๊ณ => ๋ค์ while (i > 0)์ผ๋ก ๋๋์๊ฐ์ false๊ฐ ๋์ค๊ธฐ ์ ๊น์ง ๋ฐ๋ณต
} //while:3, while:2, while:1 ๊น์ง ์ถ๋ ฅ๋๊ณ ๋์ด์ ์ถ๋ ฅ๋์ง ์๋๋ค.
โ ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ฉด ๊ฐ์ ์ฝ๋๋ฅผ ๋ฐ๋ณตํด์ ์คํํ๋ค.
(๊ฐ์ด false๊ฐ ๋์ค๊ธฐ ์ ๊น์ง ๊ณ์ํด์ ๋ฐ๋ณต๋๋ค.)
let i = 0;
do {
console.log(`do while: ${i}`); //do while:0์ด ๋จผ์ ์ถ๋ ฅ๋๋ค.
i--;
} while (i > 0); //๊ทธ ํ์ ์กฐ๊ฑด์ด ๋ง๋์ง ๊ฒ์ฌ
โ๋ธ๋ญ{ } ์์ ์ฝ๋๋ฅผ ๋ฌด์กฐ๊ฑด 1๋ฒ์ ์คํํ ๋ค์์, ์กฐ๊ฑด์ด ๋ง๋์ง ๊ฒ์ฌํ๋ค.
(์กฐ๊ฑด์ ๊ฒ์ฌํ๊ธฐ ์ ์ ๋จผ์ 1๋ฒ ์คํํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค.)
for(begin;(์ด๊ธฐ๊ฐ ์ ์) condition;(์คํ ์กฐ๊ฑด) step(๊ฐฑ์ ))
์ ๊ตฌ์กฐ๋ก ์ฌ์ฉํ๋ค.
let i = 2; //์ด๋ฏธ ์ง์ ๋ ๋ณ์
for (i = 3; i > 0; i--) { //๋ค์ ๊ฐ์ ์ง์ ํ ์๋ ์๊ณ (let์ผ ๊ฒฝ์ฐ)
console.log(`for: ${i}`);
}
์ด๋ ๊ฒ ์ด๋ฏธ ์ง์ ๋ ๋ณ์์ ๋ค์ ๊ฐ์ ์ง์ ํ ์๋ ์๊ณ (let์ผ ๊ฒฝ์ฐ)
for (let i = 3; i > 0; i = i - 2) { //๊ธฐ์กด์ ์๋ ๋ณ์๋ฅผ { }์์ ์ง์ญ๋ณ์๋ก ์ ์ธํ ์๋ ์๋ค.
console.log(`inline variable for: ${i}`);
}
for()
์์์ ์ง์ญ ๋ณ์๋ฅผ ์ ์ธํ ์๋ ์๋ค!
์ด๋ฅผ inline variable declaration (์ธ๋ผ์ธ ๋ณ์ ์ ์ธ) ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
(์ถ๋ ฅ์ ์ด๋ ๊ฒ ๋๋ค!)
ํน์ ๊ฐ์ฒด์ ์ด๊ฑฐ ๊ฐ๋ฅํ ๋ชจ๋ ํ๋กํผํฐ๋ฅผ ๋ฃจํ ์ฒ๋ฆฌ
const arr = ["item1", "item2", "item3"];
arr.forEach(function (item, index) {
console.log(item); // item, item2, item3
console.log(index); // 0, 1, 2
});
ํ์ดํ ํจ์๋ฅผ ํตํด ๊ฐ๊ฒฐํ๊ฒ ๋ง๋ค ์ ์๋ค.
arr.forEach((item, index) => {
console.log(item);
console.log(index);
});
for (let key in solmi) {
console.log(key);
} // name, age
const arr = ["item1", "item2", "item3"];
for (let prop in arr) {
console.log(prop, arr[prop]);
} // 0 item1, 1 item2, 2 item3
const arr2 = ["item1", "item2", "item3"];
for(value of arr2) {
console.log(value);
}
for of ๋ฌธ์ ์ฌ์ฉํ๋ฉด ๊ฐ๋จํ๊ฒ
for(let i = 0; i < arr2.lengh; i++) {
console.log(value);
}
Symbol.iterator ์์ฑ?
Javascript ์๋ฃํ์ Primitive Types ์ค ํ๋์ธ Symbol์์ ์ฌ์ฉ๋๋ค.
๊ฐ์ฒด์ ๋์ํ๋ ๊ธฐ๋ณธ iterator(๋ฐฐ์ด์ด๋ ์ ์ฌํ ์๋ฃ ๊ตฌ์กฐ์ ๋ด๋ถ ์์๋ฅผ ์ํํ๋ ๊ฐ์ฒด)๋ฅผ ์ง์ ํ๊ณ , for..of์ ๊ฐ์ด ์ฌ์ฉ๋๋ค.
for (let i = 0; i < 10; i++) {
for (let j = 0; j < 10; J++) {
console.log(`i: ${i}, J: ${j}`);
}
}
for๋ฌธ ์์ ๋ค์ for๋ฌธ์ ์์ฑํ ์ ์๋๋ฐ, ์์ ์์ ์ ๊ฒฝ์ฐ์๋ ์ด๋ ๊ฒ ์คํ๋๋ค.
i๊ฐ 0์ผ๋, j๊ฐ 0~9๊น์ง ์คํ๋๊ณ , ๊ทธ ๋ค์ ๋ค์ i์ step์ผ๋ก ๋์๊ฐ์ i๊ฐ 1 ์ถ๊ฐ๋๊ณ , ๊ทธํ์ i๊ฐ 1์ผ๋, j๊ฐ 0~9๊น์ง ์คํ๋๋ค. ๊ณ์ ๋ฐ๋ณต๋๋ค๊ฐ, i๊ฐ 10์ด ๋๋ ์๊ฐ, ๋์ด์ ์คํ๋์ง ์๋๋ค.
break;
: ๋ฃจํ๋ฅผ ์์ ์ข
๋ฃํ๊ณ ๋ค์ ์ฝ๋๋ก ๋์ด๊ฐ
continue;
: ํ์ฌ ๋ฃจํ์ ๋๋จธ์ง ์ฝ๋๋ฅผ ๊ฑด๋๋
๐ ๐ปโโ๏ธ label์ ์ฌ์ฉํ์ง ์๊ณ ๋ ์ฝ๋๋ฅผ ์ข ๋ ๊ฐํธํ๊ฒ ๋ฐ๊ฟ์ ์์ฑํ ์ ์๊ธฐ ๋๋ฌธ์ ํ์ ์์๋ ์ ์ฌ์ฉํ์ง ์๋๋ค.
๐น continue๋ break ์ดํดํ๊ธฐ
Q1) 0๋ถํฐ 10๊น์ง์ ์ซ์ ์ค, ์ง์์ธ ์ซ์๋ง ์ถ๋ ฅํ๊ธฐ (continue ์ด์ฉํด์)
for (i = 0; i < 11; i++) { if (i % 2 !== 0) { continue; } console.log(`${i}`); }
์์ ๋
continue
๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์ ๋ ๊ฒ ์์ฑํ๊ฑฐ์ง๋ง,continue
๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ด๋ ๊ฒ ์์ฑํ๋๊ฒ ๋ ์ข๋ค.for (let i = 0; i < 11; i++) { if (i % 2 === 0) { //์ํ๋ ๊ฐ์ผ ๋๋ง ๊ฒฐ๊ณผ ์ถ๋ ฅ console.log(`${i}`); } }
Q.2 ) 0๋ถํฐ 10๊น์ง์ ์ซ์๋ฅผ ์ถ๋ ฅํ๋, 8 ์ด์์ธ ์ซ์๋ ์ถ๋ ฅํ์ง ๋ง๊ธฐ (break ์ด์ฉํด์)
for (let i = 0; i < 11; i++) { if (i === 8) { //8์ ๋ง๋๋ฉด ๋ฉ์ถ๊ธฐ๋ก ์ดํดํ๊ณ ์ด๋ ๊ฒ ์์ฑํ๋๋ฐ i > 8 ๋ก ์์ฑํ๋๊ฒ ํจ์ฌ ๊นฐใ ก๋ break; } console.log(`${i}`); }