π‘ μ΄λ² μ£Όμλ κ°μ²΄ νμ μ ν΄λΉνλ ν¨μ, λ°°μ΄ λ±μ λν΄ μμ보μμΌλ©° λ¬Έμμ΄κ³Ό λ°°μ΄μ νλ‘νΌν° λ° λ©μλμ λν΄μλ μ΄ν΄λ³΄μλ€.
β 쑰건문
: 쑰건문μ μ£Όμ΄μ§ 쑰건μμ λ°λΌ μ½λ λΈλ‘μ μ€νμ κ²°μ ν¨
βͺ if ... else
λ¬Έ
πλμΌν μμ
μ if λ¬Έ λμ μΌν 쑰건 μ°μ°μλ‘ ν κ²½μ°
: 쑰건μ λ°λΌ λ¨μν κ°μ κ²°μ νμ¬ λ³μμ κ°μ ν λΉν κ²½μ°, μΌν 쑰건 μ°μ°μλ₯Ό μ°λ κ²μ΄ κ°λ
μ±μ μ’μ. νμ§λ§ 쑰건μ λ°λΌ μ€νν΄μΌ ν λ΄μ©μ΄ λ§μ κ²½μ°, if ... else
λ¬Έμ μ°λ νΈμ΄ κ°λ
μ±μ λμ.
βͺ switch
λ¬Έ
let month = 5;
let monthName;
switch (month) {
case 1:
monthName = "1μ";
console.log("1");
break;
case 2:
monthName = "2μ";
console.log("2");
break;
case 3:
monthName = "3μ";
console.log("3");
break;
case 4:
monthName = "4μ";
console.log("4");
break;
case 5:
monthName = "5μ";
console.log("5"); // 5
break;
case 6:
monthName = "6μ";
console.log("6");
break;
default:
monthName = "μ ν¨νμ§ μμ κ°μ
λλ€";
}
console.log(monthName); // 5μ
β λ°λ³΅λ¬Έ
βͺ break
λ¬Έμ 쑰건μμ νκ° κ²°κ³Όκ° trueλ©΄ μ½λ λΈλ‘μ νμΆν¨
β ν¨μ
: μ
λ ₯ input
μ λ°κ³ κ²°κ³Ό output
λ₯Ό λ΄λμ
// ν¨μ μ μΈλ¬Έ
// ν¨μ μ μ
function add(x, y) {
return x + y;
}
// ν¨μ νΈμΆ
add(5, 20); // 25
βͺ ν¨μ λ΄λΆλ‘ μ
λ ₯μ μ λ¬λ°λ λ³μλ₯Ό 맀κ°λ³μ parameter
,
μ
λ ₯μ μΈμ argument
, μΆλ ₯μ λ°νκ° return value
μ΄λΌκ³ ν¨
βͺ ν¨μλ κ°μ²΄ νμ
μ κ°, λ°λΌμ λ€μκ³Ό κ°μ΄ ν¨μ 리ν°λ΄ μμ±ν μ μμ (리ν°λ΄ : μ¬λμ΄ μ΄ν΄ν μ μλ λ¬Έμ λλ μ½μλ κΈ°νΈλ₯Ό μ¬μ©νμ¬ κ°μ μμ±νλ νκΈ° λ°©μ)
// ν¨μ ννμ
// fλΌλ λ³μμ ν¨μ 리ν°λ΄μ ν λΉ
let f = function add(x, y) {
return x + y;
};
f(5, 20); //25
πν¨μ 리ν°λ΄κ³Ό ν¨μ μ μΈλ¬Έμ ννκ° λμΌνμ§λ§, μ°¨μ΄κ° μμ. ν¨μ 리ν°λ΄μ ν¨μ μ΄λ¦μ μλ΅ν μ μκ³ , ν¨μ μ μΈλ¬Έμ ν¨μ μ΄λ¦μ μλ΅ν μ μμ.
πν¨μλ₯Ό μ μνλ 4κ°μ§ λ°©μ
1. ν¨μ μ μΈλ¬Έ
// ν¨μ μ μΈλ¬Έ
function add(x, y) {
return x + y;
}
// ν¨μ ννμ
// λ³μμ ν¨μ 리ν°λ΄μ ν λΉ
let f = function add(x, y) {
return x + y;
};
Function
μμ±μ ν¨μlet add = new Function('x', 'y', 'return x + y');
let add = (x, y) => x + y;
add(5, 20); // 25
πνμ΄ν ν¨μλ function
ν€μλ λμ νμ΄ν β
λ₯Ό μ΄μ©ν΄ μ’ λ κ°λ΅ν λ°©μμΌλ‘ ν¨μλ₯Ό μ μΈν¨
β λ°°μ΄ Array
: λ°°μ΄μ κ°μ²΄ νμ
μ κ°
-> κ°μ²΄λ νλ‘νΌν°μ λ©μλμ μ§ν©μ²΄
π λ°°μ΄μ νλ‘νΌν°
: νλ‘νΌν°λ key
μ value
μ ν¬λ§·μ κ°μ§. λ°°μ΄μ λ€μ΄μλ μμλ νλ‘νΌν° value
μ΄λ©°, κ°κ°μ μμμλ λ°°μ΄μ λ€μ΄μλ μμ(μΈλ±μ€ index
)λλ‘ key
κ°μ΄ μ£Όμ΄μ§.
βͺ λ°°μ΄μλ length
λΌλ νλ‘νΌν°λ μλλ° length νλ‘νΌν°λ λ°°μ΄μ κΈΈμ΄, μ¦ λ°°μ΄μ λ€μ΄μλ μμμ μλ₯Ό λνλ
πλ°°μ΄μ λ©μλ
: μλ°μ€ν¬λ¦½νΈλ λ°°μ΄μ λ€λ£° λ μ μ©ν λ€μν λΉνΈμΈ λ©μλλ₯Ό μ 곡ν¨. λ§€μ° ε€!!
β λ¬Έμμ΄ String
: λ¬Έμμ΄ Stringμ κ°μ²΄ νμ
-> κ°μ²΄λ νλ‘νΌν°μ λ©μλμ μ§ν©μ²΄
π λ¬Έμμ΄μ νλ‘νΌν°
: λμ΄μ°κΈ°ν 곡백μ ν¬ν¨νμ¬ κ° λ¬Έμλ§λ€ μΈλ±μ€λ₯Ό νλ‘νΌν° κ°μΌλ‘ κ°κ³ μμ
βͺ length
λΌλ νλ‘νΌν°λ μλλ° length νλ‘νΌν°λ λ¬Έμμ΄μ κΈΈμ΄λ₯Ό νλ‘νΌν° κ°μΌλ‘ κ°μ§
πλ¬Έμμ΄μ λ©μλ
: μ΄μΈμλ λ§€μ° ε€!!
βλ¬Έμ νμ΄
Q1. μμ μ΄μ ν루 μΌκ³Όλ μ΄λ»κ² νλ¬κ°κΉμ?
π½μ΄ λ¬Έμ λ λ°λ³΅λ¬Έ μ€ forλ¬Έμ μ¬μ©νμ¬ νμ΄λ³΄μλ€. forλ¬Έμμλ λ°°μ΄λ‘ λνλΈ scheduleμ μΈλ±μ€ 0λ²λΆν° schedule λ°°μ΄μ μ 체 κΈΈμ΄κΉμ§ iλ₯Ό μ¦κ°μν€λ λμμ λ°λ³΅νλλ° κ·Έ μμ ν¬ν¨λ if λ¬Έμ΄ true
μΈ κ²½μ° μ½λ λΈλ‘μ μ€ννλ€. if λ¬Έμμ schedule.placeμ iλ²μ§Έ μμκ° "μ΄λΆ μ"μ΄λ©΄ pushλ₯Ό ν΅ν΄ schedule.behaviorμ μμ resultμ μΆκ°ν¨μΌλ‘μ¨ ν΄λΉκ²°κ³ΌμΈ ["λ¦μ μκΈ°","λ·νλ¦μ€λ μ’μ μκ° λ³΄λ΄κΈ°","μΏ¨μΏ¨"] μ΄ μ½μμ°½μ λνλλ κ²μ΄λ€.
Q2. μ°λ¦¬ λ°μ μμ μ΄λ λͺ λͺ μΌκΉμ?
// μλ μ¬μ§μμ let classMatesμ ν΄λΉνλ λΆλΆ
let classMates = [
"μ§μ",
"μ μ§",
"μλ¦°",
"μ¬μ€",
"μ§μ",
"μμ ",
"μμ",
"μ λ―Έ",
"νμ",
"μ§μ",
"μμ ",
"μν",
"μμ§",
"λ€ν",
"μμ ",
"ν΄μΈ",
"λμ°"
];
π½classMates λ°°μ΄μ μ 체길μ΄κΉμ§ classMates λ°°μ΄μ μΈλ±μ€λ₯Ό μ¦κ°μν€λ©° λ§μ½μ classMates λ°°μ΄ μμ μ€μ "μμ "μ΄ μμΌλ©΄ result κ°(μ΄κΈ° result κ°μ 0μΌλ‘ μ€μ ν΄λμμ)μ νλμ© μ¦κ°μμΌ μ½μμ°½μ κ²°κ³Όκ° λνλλλ‘ for λ¬Έκ³Ό κ·Έ μμ ifλ¬Έμ μ¬μ©νμ¬ λ¬Έμ λ₯Ό νμ΄λ³΄μλ€.
Q3. κ°μ₯ 곡μ₯ 곡μ₯μ₯μλ μ₯μ΄ λͺ λ²?
π½split
λ©μλλ λμ λ¬Έμμ΄μμ 첫λ²μ§Έ μΈμλ‘ μ λ¬ν λ¬Έμμ΄ λλ μ κ· ννμμ κ²μνμ¬ λ¬Έμμ΄μ ꡬλΆν ν λΆλ¦¬λ κ° λ¬Έμμ΄λ‘ μ΄λ£¨μ΄μ§ λ°°μ΄μ λ°ννλ€. μ΄ λ¬Έμ μμλ "κ°μ₯ 곡μ₯ 곡μ₯μ₯"μ΄λΌλ κ°μ΄ ν λΉλ strμμ "μ₯"μ΄λΌλ λ¬Έμμ΄μ΄ μ΄ λͺλ² λμλμ§ λ¬Όμ΄λ³΄κ³ μμΌλ―λ‘ split
λ©μλλ₯Ό μ¬μ©νλ κ²μ΄λ€. for λ¬Έμ μ¬μ©νμ¬ λ°λ³΅μ€ννλλ‘ νμκ³ κ·Έ μμ if λ¬Έμ μ¬μ©νμ¬ μ‘°κ±΄μ΄ λ§λ κ²½μ° resultκ°μ΄ νλμ© μ¦κ°νμ¬ μ½μμ°½μ λ¨λλ‘ νμλ€.
Q4. λ°°μ΄μ μ§μλ²μ§Έ μμμλ§ λνκΈ° 2νκΈ°
π½λ°°μ΄μ μΈλ±μ€λ 0λΆν° μμνλ―λ‘ arrμ μ§μλ²μ§Έ μμλ λ°°μ΄ μΈλ±μ€μ κ²½μ° νμλ²μ§Έμ ν΄λΉνλ μμλ₯Ό λ§νλ€. λ°°μ΄ μΈλ±μ€ 1λ²μ§Έ μμ, 3λ²μ§Έ μμκ° arrμ 2λ²μ§Έ 4λ²μ§Έ μμλ₯Ό μλ―Ένλ κ²μ΄λ€. λ°λΌμ ν΄λΉ λ΄μ©μ if (i % 2 === 1)
λ‘ λ°°μ΄μ μΈλ±μ€ iλ₯Ό 2λ‘ λλ λλ¨Έμ§κ° 1μΈ μ¦, λ°°μ΄μ νμλ² μΈλ±μ€μ ν΄λΉνλ μμμ 2λ₯Ό λνλλ‘ arr[i] += 2
λ₯Ό ν κ²μ΄λ€.
Q5. μ€μ΄λ λΉΌμ£ΌμΈμ!
π½sandwich μ μλ λ°°μ΄ μμλ€ μ€ "μ€μ΄"κ° μλ κ²λ€λ§ resultμ ν¬ν¨λλλ‘ νκΈ° μν΄ λ°°μ΄ μΈλ±μ€ iλ₯Ό 0λ²λΆν° sandwich λ°°μ΄μ μ΄ κΈΈμ΄κΉμ§ μ¦κ°μν€λ©° λ§μ½μ sandwichμ iλ²μ§Έ μμκ° μ€μ΄κ° μλ κ²½μ° resultμ ν¬ν¨λλλ‘ if (sandwich[i] !== "μ€μ΄") result.push(sandwich[i])
λ₯Ό νμλ€.
쑰건문과 λ°λ³΅λ¬Έμ κ΄λ ¨λ λ΄μ©μ λ€μλ λ€λ₯Έ μμ μμ λ€μ΄λ³Έ if elseλ¬Έ, switchλ¬Έ, forλ¬Έκ³Ό whileλ¬Έμ λν΄μ λ€μ λ€μΌλ©° 볡μ΅ν μ μμκ³ , μ΄μΈμ λ€μν μλ‘μ΄ λ΄μ©λ€μ μμκ° μ μμ΄μ μ’μλ€. μΉ νμ΄μ§μμ κ°λ°μλꡬ(F12ν€)λ‘ λ€μ΄κ°λ©΄ μ½μμ°½μ μ΄μ©νμ¬ Codesandboxμμμ²λΌ μ€μ΅μ ν μ μλ€λ κ²λ μλ‘κ² μκ²λμκ³ μ§μ μ¨λ³΄λ μ κΈ°νλ€. κ°μ²΄νμ μ νλ‘νΌν°μ λ©μλκ° μ΄λ»κ² ννλμ΄μλμ§ λ°°μ΄κ³Ό λ¬Έμμ΄μ μΉ νμ΄μ§μ μ½μμ°½μ μμ±νμ¬ μ§μ νμΈν μ μμλ€. μ λ§ λ€μν λ©μλκ° μλ€λ μ μ λλΌμ κ³ μ²μ λ€μ΄λ³΄λ λ΄μ©μ΄λΌ ν₯λ―Έλ‘μ λ€. μ£Όμ΄μ§ λ¬Έμ λ₯Ό νμ΄λ³΄λ κ³Όμ λ₯Ό νλ©΄μ μμ§μ μλ° μ€ν¬λ¦½νΈ λ¬Έλ²μ μ΄μ©νμ¬ λ€μν λ°©λ²μΌλ‘ λ¬Έμ λ₯Ό νμ΄λκ° μ€λ ₯μ΄ μλλ©° μ°μ΅μ΄ νμνλ€λ κ²μ μ μ μμλ€. κ·Έλλ ν΄λ΅μ νμ΄κ³Όμ μ 보면μ μ΄ λΆλΆμ μ μ΄λ κ² μ°μΈ κ²μΈμ§ κ³ λ―Όν΄λ³΄λ©° λ°°μ λ λ΄μ©μ λ μ¬λ¦΄ μ μμκ³ forλ¬Έκ³Ό ifλ¬Έμ μ°μμ λν΄ λμ± μμκ° μ μμλ€. μμΌλ‘ μκ°μ΄ λ λλ§λ€ ννμ΄ μλ° μ€ν¬λ¦½νΈ λ¬Έλ²μ κ΄ν μ€μ΅μ νμ¬ μ΅μν΄μ§λλ‘ ν΄μΌκ² λ€:-)