βοΈ μ΄λ² μ λ μ ν΅ν΄ μκ² λ κ²
ν¨μκ° μ νμνκ°μ?
ν¨μ μ μΈλ¬Έκ³Ό ν¨μ ννμμ μ΄λ€ μ°¨μ΄κ° μλμ?
μμ νμ μΈμμ κ°μ²΄ νμ μΈμλ μ΄λ€ μ°¨μ΄κ° μλμ?
ν¨μν νλ‘κ·Έλλ°μ 무μμ΄κ³ μ νμνκ°μ?
<λ΅ λ―Έλ¦¬λ³΄κΈ°>
π€ ν¨μκ° μ νμνκ°μ?
π€ ν¨μλ λͺ λ²μ΄λ νΈμΆν μ μμΌλ―λ‘ μ½λμ μ¬μ¬μ© μΈ‘λ©΄μμ λ§€μ° μ 리νκΈ° λλ¬Έμ λλ€. κ·Έλ¦¬κ³ μ μ§λ³΄μμ νΈμμ±μ λμ΄κ³ μ€μλ₯Ό μ€μ¬μ μ½λμ μ λ’°μ±μ λμ΄λ ν¨κ³Όκ° μμ΅λλ€.
π€ ν¨μ μ μΈλ¬Έκ³Ό ν¨μ ννμμ μ΄λ€ μ°¨μ΄κ° μλμ?
π€ ν¨μ μ μΈλ¬Έκ³Ό ν¨μ ννμ λͺ¨λ μλ°μ€ν¬λ¦½νΈμ νΉμ§μΌλ‘ μΈνμ¬ νΈμ΄μ€ν μ΄ μΌμ΄λλ€λ νΉμ§μ΄ μμ§λ§, (λ°νμ μ΄μ μ μλ³μλ₯Ό μμ±ν¨)
ν¨μ μ μΈλ¬Έμ μ묡μ μΌλ‘ μμ±λ μλ³μλ ν¨μ κ°μ²΄λ‘ μ΄κΈ°νλμ΄ μ μΈλ¬Έ μ΄μ μ νΈμΆνλ©΄ νΈμΆμ΄ κ°λ₯ν©λλ€.
νμ§λ§ ν¨μ ννμμ undefinedλ‘ μ΄κΈ°ν λ ν λ°νμμ νκ°λλ―λ‘ ννμ μ΄μ μ νΈμΆνλ©΄ undefinedμΌλ‘ νκ°λ©λλ€.
(ν¨μ ννμμ λ³μ νΈμ΄μ€ν κ³Ό κ°μ κ³Όμ )
π€ μμ νμ μΈμμ κ°μ²΄ νμ μΈμλ μ΄λ€ μ°¨μ΄κ° μλμ?
π€ μμ νμ μΈμλ κ° μμ²΄κ° λ³΅μ¬λμ΄ λ§€κ°λ³μμ μ λ¬λκΈ° λλ¬Έμ ν¨μ λ΄λΆμμ κ·Έ κ°μ λ³κ²½ν΄λ μλ³Έμ νΌμλμ§ μλλ€. (λΆμ ν¨κ³Όλ λ°μνμ§ μλλ€. = μμν¨μ)
κ°μ²΄ νμ μΈμλ μ°Έμ‘° κ°μ΄ 볡μ¬λμ΄ λ§€κ°λ³μμ μ λ¬λκΈ° λλ¬Έμ ν¨μ λ΄λΆμμ μ°Έμ‘° κ°μ ν΅ν΄ κ°μ²΄λ₯Ό λ³κ²½ν κ²½μ° μλ³Έμ΄ νΌμλλ€.(λΆμ ν¨κ³Όκ° λ°μνλ€. = λΉμμν¨μ)
π€ ν¨μν νλ‘κ·Έλλ°μ 무μμ΄κ³ μ νμνκ°μ?
π€ ν¨μν νλ‘κ·Έλλ°μ μμ ν¨μμ 보쑰 ν¨μμ μ‘°ν©μ ν΅ν΄ μΈλΆ μνλ₯Ό λ³κ²½νλ λΆμ ν¨κ³Όλ₯Ό μ΅μνν΄μ λΆλ³μ±μ μ§ν₯νλ νλ‘κ·Έλλ° ν¨λ¬λ€μμ λλ€. ν¨μν νλ‘κ·Έλλ°μ μ κ·Ή κΆμ₯νλ μ΄μ λ μμν¨μλ₯Ό ν΅ν΄ λΆμ ν¨κ³Όλ₯Ό μ΅λν μ΅μ ν΄μ μ€λ₯λ₯Ό νΌνκ³ νλ‘κ·Έλ¨μ μμ μ±μ λμ΄λ €λ λ Έλ ₯μ μΌνμ΄κΈ° λλ¬Έμ λλ€.
βοΈ ν¨μ
ν¨μλ, μΌλ ¨μ κ³Όμ μ statementλ‘ κ΅¬ννκ³ μ½λ λΈλ‘μΌλ‘ κ°μΈμ νλμ μ€ν λ¨μλ‘ μ μν κ²μ΄λ€.
μ©μ΄λ₯Ό μ λλ‘ μκ³ λ©΄μ μμ μ λλ‘ λ§νμ!!
μΈμλ₯Ό 맀κ°λ³μλ₯Ό ν΅ν΄ ν¨μμ μ λ¬νλ©΄μ ν¨μμ μ€νμ λͺ μμ μΌλ‘ μ§μν΄μΌ ν¨μ νΈμΆμ΄ λ©λλ€.
βοΈ ν¨μ μ μ λ°©μ
1. ν¨μ μ μΈλ¬Έ
2. ν¨μ ννμ
3. Function μμ±μ ν¨μ
4. νμ΄ν ν¨μ(ES6)
1. ν¨μ μ μΈλ¬Έ (ν¨μ κ°μ²΄λ‘ μ΄κΈ°ν)
function add(x,y) {
return x + y;
}
2. ν¨μ ννμ (undefinedλ‘ μ΄κΈ°ν)
let add = function (x,y) {
return x + y;
}
3. Function μμ±μ ν¨μ => ν΄λ‘μ λ₯Ό μμ±νμ§ μμμ κΈ°μ‘΄ ν¨μμ λμΌνκ² μλνμ§ μλλ€. (ν΄λ‘μ 곡λΆνμ!)
let add = new Function('x','y','return x+y');
4. νμ΄ν ν¨μ(ES6)
let add = (x,y) => x + y;
βοΈ ν¨μ μΈμ νμΈ
- JS ν¨μλ 맀κ°λ³μμ μΈμμ κ°μκ° μΌμΉνλμ§ νμΈνμ§ μλλ€.
- JSλ λμ μΈ νμ μΈμ΄μ΄λ€. κ·Έλμ JS ν¨μλ 맀κ°λ³μμ νμ μ μ¬μ μ μ§μ ν μ μλ€. ===> μ΄κ² νμ μ€ν¬λ¦½νΈκ° λμ¨ μ΄μ !
νμ μ€ν¬λ¦½νΈμ κ°μ μ μ νμ μ μ μΈν μ μλ μλ°μ€ν¬λ¦½λμ μμ νμ₯μ λμ ν΄μ μ»΄νμΌ μμ μ λΆμ μ ν νΈμΆμ λ°©μ§ν μ μλ€.
βοΈ μ°Έμ‘°μ μν μ λ¬κ³Ό μΈλΆ μνμ λ³κ²½
function change(primitive, obj) {
primitive += 100;
obj.name = 'kim';
}
let num = 100;
let person = {name: 'lee'};
console.log(num); // 100
console.log(person); // {name: 'lee'};
change(num, person) // 맀κ°λ³μμ μΈμλ₯Ό λ£μ΄μ ν¨μλ₯Ό μ€νμν΄
console.log(num); // 100 ==> μμκ°μ μλ³Έμ΄ νΌμλμ§ μλλ€.
console.log(person); // {name: 'kim'}; ==> κ°μ²΄λ μλ³Έμ΄ νΌμλλ€.
μμκ°μ λ³κ²½ λΆκ°λ₯ν immutable value!
κ°μ²΄λ λ³κ²½ κ°λ₯ν mutable valueμ΄λ€!
β μμ νμ μΈμλ κ° μμ²΄κ° λ³΅μ¬λμ΄ λ§€κ°λ³μμ μ λ¬λκΈ° λλ¬Έμ ν¨μ λ΄λΆμμ κ·Έ κ°μ λ³κ²½ν΄λ μλ³Έμ νΌμλμ§ μλλ€. ===> ν¨μ μΈλΆμμ ν¨μ λ΄λΆλ‘ μ λ¬ν μμ κ°μ μλ³Έμ λ³κ²½νλ μ΄λ ν λΆμ ν¨κ³Όλ λ°μνμ§ μλλ€.
β κ°μ²΄ νμ μΈμλ μ°Έμ‘° κ°μ΄ 볡μ¬λμ΄ λ§€κ°λ³μμ μ λ¬λκΈ° λλ¬Έμ ν¨μ λ΄λΆμμ μ°Έμ‘° κ°μ ν΅ν΄ κ°μ²΄λ₯Ό λ³κ²½ν κ²½μ° μλ³Έμ΄ νΌμλλ€. ===> ν¨μ μΈλΆμμ ν¨μ λ΄λΆλ‘ μ λ¬ν μ°Έμ‘° κ°μ μν΄ μλ³Έ κ°μ²΄κ° λ³κ²½λλ λΆμ ν¨κ³Όκ° λ°μνλ€.
βοΈ μ¬κ· ν¨μ
μκΈ° μμ μ νΈμΆνλ ν¨μμ λλ€.
μ¬κ·ν¨μλ λ°λ³΅λλ μ²λ¦¬λ₯Ό μν΄ μ¬μ©ν©λλ€.
μλμ μμμ²λΌ for λ¬Έμ μ¬μ©νμ§ μκ³ μ¬κ·ν¨μλ‘ λ°λ³΅λλ μ²λ¦¬λ₯Ό ν μ μλ€.
function countupA(n) {
for(let i = 1; i <= n; i++){
console.log(i)
}
}
countupA(10)
// 1~10
function countupB(n) {
if(n>10) return;
console.log(n)
countupB(n+1)
}
countupB(1)
// 1~10
β μ¬μ·¨ν¨μλ μ¬κ· νΈμΆμ λ©μΆ μ μλ νμΆ μ‘°κ±΄μ λ°λμ λ§λ€μ΄μΌ νλ€. νμΆ μ‘°κ±΄μ΄ μλ€λ©΄ 무ν λ°λ³΅μ λΉ μ Έ μ€ν μ€λ²νλ‘μ° μλ¬λ₯Ό λ°μμν¬ μ μμΌλ―λ‘ μ£Όμν΄μΌν©λλ€.
βοΈ μ½λ°± ν¨μ
ν¨μμ 맀κ°λ³μλ₯Ό ν΅ν΄ λ€λ₯Έ ν¨μμ λ΄λΆλ‘ μ λ¬λλ ν¨μλ₯Ό μ½λ°± ν¨μλΌκ³ ν©λλ€.
μ°Έκ³ )맀κ°λ³μλ₯Ό ν΅ν΄ ν¨μμ μΈλΆμμ μ½λ°± ν¨μλ₯Ό μ λ¬λ°μ ν¨μλ₯Ό κ³ μ°¨ ν¨μλΌκ³ ν©λλ€.
μ½λ°± ν¨μλ ν¨μν νλ‘κ·Έλλ° λΏλ§ μλλΌ λΉλκΈ° μ²λ¦¬ (μ΄λ²€νΈ μ²λ¦¬, Ajax ν΅μ , νμ΄λ¨Έ ν¨μ λ±)μ λ°°μ΄ κ³ μ°¨ν¨μμμλ μ¬μ©λλ μ€μν ν¨ν΄μ λλ€.
βοΈ μμ ν¨μμ ν¨μν νλ‘κ·Έλλ°
μ΄λ€ μΈλΆ μνμ μμ‘΄νμ§ μκ³ λ³κ²½νμ§λ μλ, (λΆμν¨κ³Όκ° μλ) ν¨μλ₯Ό μμ ν¨μλΌκ³ ν©λλ€.
let count = 0;
//μμν¨μ
function increase(n) {
return ++n;
}
count = increase(count);
console.log(count); //1
count = increase(count);
console.log(count); //2
μμν¨μλ λμΌν μΈμκ° μ λ¬λλ©΄ μΈμ λ λμΌν κ°μ λ°ννλ ν¨μμ λλ€.
μ°Έκ³ ) μ΄λ€ μΈλΆ μνμ μμ‘΄νκ±°λ, μΈλΆ μνλ₯Ό λ³κ²½νλ, (λΆμν¨κ³Όκ° μλ) ν¨μλ₯Ό λΉμμ ν¨μλΌκ³ ν©λλ€.
let count = 0;
//λΉμμν¨μ
function increase() {
return ++count; // μΈλΆ μνμ μμ‘΄νλ©° μΈλΆ μνλ₯Ό λ³κ²½νλ€.
}
increase();
console.log(count); //1
increase();
console.log(count); //2
β ν¨μκ° μΈλΆ μνλ₯Ό λ³κ²½νλ©΄ μν λ³νλ₯Ό μΆμ νκΈ° μ΄λ €μμ§λ€. κ·Έλμ ν¨μ μΈλΆ μνμ λ³κ²½μ μ§μνλ μμ ν¨μλ₯Ό μ¬μ©νλ κ²μ΄ μ’λ€.
ν¨μν νλ‘κ·Έλλ°μ μμ ν¨μμ 보쑰 ν¨μμ μ‘°ν©μ ν΅ν΄ μΈλΆ μνλ₯Ό λ³κ²½νλ λΆμ ν¨κ³Όλ₯Ό μ΅μνν΄μ λΆλ³μ±μ μ§ν₯νλ νλ‘κ·Έλλ° ν¨λ¬λ€μμ λλ€.
ν¨μν νλ‘κ·Έλλ°μ μ κ·Ή κΆμ₯νλ μ΄μ λ μμν¨μλ₯Ό ν΅ν΄ λΆμ ν¨κ³Όλ₯Ό μ΅λν μ΅μ ν΄μ μ€λ₯λ₯Ό νΌνκ³ νλ‘κ·Έλ¨μ μμ μ±μ λμ΄λ €λ λ Έλ ₯μ μΌνμ΄κΈ° λλ¬Έμ λλ€.
π©π» λͺ¨λ μλ°μ€ν¬λ¦½νΈ Deep Diveλ₯Ό μ λ νκ³ μ κ° μ΄ν΄ν λ΄μ©μ μ 리ν κΈμ λλ€ π©π»
'πLanguage > JavaScript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Deep Dive] μ μ λ³μμ λ¬Έμ μ (0) | 2022.12.05 |
---|---|
[Deep Dive] μ€μ½νμ μ€μ½ν μ²΄μΈ (0) | 2022.12.02 |
[Deep Dive] λ³μμ νΈμ΄μ€ν (0) | 2022.11.30 |
[#JS 30 challenge] Day 2. Clock λ°°μ΄ μ (0) | 2022.08.13 |
[#JS 30 challenge] Day 1. Drum kit λ°°μ΄ μ (0) | 2022.08.12 |