μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- position
- νλ‘κ·Έλλ¨Έμ€
- history api
- λ°λΈμ½μ€
- CSS
- μλ°μ€ν¬λ¦½νΈ
- Flex
- λ°λΈμ½μ€3κΈ°
- λΈλ‘κ·Έ
- fetch API
- useRef
- Props
- νλ‘ νΈμλ
- μκ³ λ¦¬μ¦
- REACT
- μ½λ©ν μ€νΈ
- float
- useEffect
- Gatsby
- Today
- Total
Daehyunii's Dev-blog
12μ₯ ν¨μ λ³Έλ¬Έ
12μ₯ ν¨μ
Daehyunii 2022. 7. 2. 22:4812.1 ν¨μλ?
ν¨μλ μλ°μ€ν¬λ¦½νΈμμ κ°μ₯ μ€μν ν΅μ¬ κ°λ μ΄λ€. νλ‘κ·Έλλ° μΈμ΄μ ν¨μλ μΌλ ¨μ κ³Όμ μ λ¬ΈμΌλ‘ ꡬννκ³ μ½λ λΈλ‘μΌλ‘ κ°μΈμ νλμ μ€ν λ¨μλ‘ μ μν κ²μ΄λ€. ν¨μλ ν¨μ μ μλ₯Ό ν΅ν΄ μμ±νλ€. μλ°μ€ν¬λ¦½νΈμ ν¨μλ λ€μν λ°©λ²μΌλ‘ μ μν μ μλ€.
// ν¨μ μ μΈλ¬ΈμΌλ‘ μ μ
function add(x,y){
return x + y;
}
ν¨μ μ μλ§μΌλ‘ ν¨μκ° μ€νλλ κ²μ μλλ€. μΈμλ₯Ό 맀κ°λ³μλ₯Ό ν΅ν΄ ν¨μμ μ λ¬νλ©΄μ ν¨μμ μ€νμ λͺ μμ μΌλ‘ μ§μν΄μΌ νλ€. μ΄λ₯Ό ν¨μ νΈμΆμ΄λΌ νλ€. ν¨μλ₯Ό νΈμΆνλ©΄ μ½λ λΈλ‘μ λ΄κΈ΄ λ¬Έλ€μ΄ μΌκ΄μ μΌλ‘ μ€νλκ³ μ€ν κ²°κ³Ό, μ¦ λ°νκ°μ λ°ννλ€.
function add(x,y){
return x + y;
}
console.log(add(2,3)); // 5
12.3 ν¨μ 리ν°λ΄
μλ°μ€ν¬λ¦½νΈμ ν¨μλ κ°μ²΄ νμ μ κ°μ΄λ€. λ°λΌμ μ«μ κ°μ μ«μ 리ν°λ΄λ‘ μμ±νκ³ κ°μ²΄λ₯Ό κ°μ²΄ 리ν°λ΄λ‘ μμ±νλ κ²μ²λΌ ν¨μλ ν¨μ 리ν°λ΄λ‘ μμ±ν μ μλ€. μ¦ ν¨μ 리ν°λ΄μ κ°μ μμ±νλ νκΈ° λ°©μμ΄κ³ κ²°κ΅ ν¨μλ κ°μ²΄λ€.
// ν¨μ 리ν°λ΄μ f λ³μμ ν λΉ
var f = function add(x,y){
return x + y;
};
12.4 ν¨μ μ μ
ν¨μλ₯Ό μ μνλ λ°©λ²μ 4κ°μ§κ° μλ€.
// ν¨μ μ μΈλ¬Έ
function add(x, y){
return x + y;
}
// ν¨μ ννμ
var add = function(){
return x + y;
};
// μμ±μ ν¨μ
var add = new Function('x','y','return x + y');
//νμ΄ν ν¨μ
var add = (x, y) => x + y;
12.4.1 ν¨μ μ μΈλ¬Έ
ν¨μ μ μΈλ¬Έμ ν¨μ 리ν°λ΄κ³Ό ννκ° λμΌνλ€. λ¨ ν¨μ 리ν°λ΄μ ν¨μ μ΄λ¦μ μλ΅ν μ μμΌλ ν¨μ μ μΈλ¬Έμ ν¨μ μ΄λ¦μ μλ΅ν μ μλ€. ν¨μ μ μΈλ¬Έμ ννμμ΄ μλ λ¬Έμ΄λ€. κ·Έλ¬λ―λ‘ λ³μμ ν λΉν μ μλ€.
12.4.2 ν¨μ ννμ
μλ°μ€ν¬λ¦½νΈμ ν¨μλ κ°μ²΄ νμ μ κ°μ΄λ€. μλ°μ€ν¬λ¦½νΈμ ν¨μλ κ°μ²λΌ λ³μμ ν λΉν μλ μκ³ νλ‘νΌν° κ°μ΄ λ μλ μμΌλ©° λ°°μ΄μ μμκ° λ μλ μλ€. μ΄μ²λΌ κ°μ μ±μ§μ κ°λ κ°μ²΄λ₯Ό μΌκΈ κ°μ²΄λΌ νλ€. μλ°μ€ν¬λ¦½νΈμ ν¨μλ μΌκΈ κ°μ²΄λ€. ν¨μλ μΌκΈ κ°μ²΄μ΄λ―λ‘ ν¨μ 리ν°λ΄λ‘ μμ±ν ν¨μ κ°μ²΄λ₯Ό λ³μμ ν λΉν μ μλ€. μ΄λ¬ν ν¨μ μ μ λ°©μμ ν¨μ ννμμ΄λΌ νλ€. ν¨μ ννμμ ννμμΈ λ¬Έμ΄λ€.
12.4.3 ν¨μ μμ± μμ κ³Ό ν¨μ νΈμ΄μ€ν
ν¨μ μ μΈλ¬ΈμΌλ‘ μ μν ν¨μμ ν¨μ ννμμΌλ‘ μ μν ν¨μμ μμ± μμ μ λ€λ₯΄λ€. λͺ¨λ μ μΈλ¬Έμ΄ κ·Έλ λ― ν¨μ μ μΈλ¬Έλ μ½λκ° ν μ€μ© μμ°¨μ μΌλ‘ μ€νλλ μμ μΈ λ°νμ μ΄μ μ μλ°μ€ν¬λ¦½νΈ μμ§μ μν΄ λ¨Όμ μ€νλλ€. κ·Έλ¦¬κ³ ν¨μ κ°μ²΄κ° μ΄κΈ°ν λλ€. μ΄λ₯Ό ν¨μ νΈμ΄μ€ν μ΄λΌκ³ νλ€. νμ§λ§ ν¨μ ννμμ κ²½μ° λ³μ νΈμ΄μ€ν μ΄ λ°μνλ€.
12.4.4 Function μμ±μ ν¨μ
μλ°μ€ν¬λ¦½νΈκ° κΈ°λ³Έ μ 곡νλ λΉνΈμΈ ν¨μμΈ Function μμ±μ ν¨μμ 맀κ°λ³μ λͺ©λ‘κ³Ό ν¨μ λͺΈμ²΄λ₯Ό λ¬Έμμ΄λ‘ μ λ¬νλ©΄μ new μ°μ°μμ ν¨κ» νΈμΆνλ©΄ ν¨μ κ°μ²΄λ₯Ό μμ±ν΄μ λ°ννλ€. μ¬μ€ new μ°μ°μ μμ΄ νΈμΆν΄λ κ²°κ³Όλ λμΌνλ€.
12.4.5 νμ΄ν ν¨μ
ES6μμ λμ
λ νμ΄ν ν¨μλ function ν€μλ λμ νμ΄νλ₯Ό μ¬μ©ν΄ μ’ λ κ°λ΅ν λ°©λ²μΌλ‘ ν¨μλ₯Ό μ μΈν μ μλ€. νμ΄ν ν¨μλ νμ μ΅λͺ
ν¨μλ‘ μ μνλ€. μ¦, ν¨μ μ μΈλ¬ΈμΌλ‘λ νμ΄ν ν¨μλ₯Ό μ μν μ μλ€.
12.5 ν¨μ νΈμΆ
ν¨μλ ν¨μλ₯Ό κ°λ¦¬ν€λ μλ³μμ ν μμ μκ΄νΈμΈ ν¨μ νΈμΆ μ°μ°μλ‘ νΈμΆνλ€. ν¨μ νΈμΆ μ°μ°μ λ΄μλ 0κ° μ΄μμ μΈμλ₯Ό μΌνλ‘ κ΅¬λΆν΄μ λμ΄νλ€.
12.5.1 맀κ°λ³μμ μΈμ
ν¨μλ₯Ό μ€ννκΈ° μν΄ νμν κ°μ ν¨μ μΈλΆμμ ν¨μ λ΄λΆλ‘ μ λ¬ν νμκ° μλ κ²½μ°, 맀κ°λ³μλ₯Ό ν΅ν΄ μΈμλ₯Ό μ λ¬νλ€. μΈμλ κ°μΌλ‘ νκ°λ μ μλ ννμμ΄μ΄μΌ νλ€. μΈμλ ν¨μλ₯Ό νΈμΆν λ μ§μ νλ©°, κ°μμ νμ μ μ νμ΄ μλ€.
function add(x, y){
return x + y;
}
var result = add(1,2);
console.log(result); // 3
맀κ°λ³μλ ν¨μλ₯Ό μ μν λ μ μΈνλ©°, ν¨μ λͺΈμ²΄ λ΄λΆμμ λ³μμ λμΌνκ² μ·¨κΈλλ€. μ¦, ν¨μκ° νΈμΆλλ©΄ ν¨μ λͺΈμ²΄ λ΄μμ μ묡μ μΌλ‘ 맀κ°λ³μκ° μμ±λκ³ μΌλ° λ³μμ λ§μ°¬κ°μ§λ‘ undefinedλ‘ μ΄κΈ°νλ μ΄ν μΈμκ° μμλλ‘ ν λΉλλ€. 맀κ°λ³μλ³΄λ€ μΈμκ° λ λ§μ κ²½μ° μ΄κ³Όλ μΈμλ 무μλλ€.(μ ννκ² λ§νλ©΄ ν¨μμ arguments κ°μ²΄μ νλ‘νΌν°λ‘ 보κ΄λλ€.)
12.5.4 λ°νλ¬Έ
ν¨μλ return ν€μλμ ννμμΌλ‘ μ΄λ€μ§ λ°νλ¬Έμ μ¬μ©ν΄ μ€ν κ²°κ³Όλ₯Ό ν¨μ μΈλΆλ‘ λ°νν μ μλ€. μ¦, ν¨μ νΈμΆμ λ°νκ°μΌλ‘ νκ°λλ€.
function add(x, y){
return x + y;
}
var result = add(1,2); // add ν¨μλ₯Ό νΈμΆνμ¬ μ μ λ³μμΈ resultμ ν λΉ
console.log(result); // 3
ν¨μ νΈμΆμ ννμμ΄λ€. ν¨μ νΈμΆμ λ°νκ°μ κ°μ§κΈ° λλ¬Έμ κ°μΌλ‘ νκ°λλ λ¬Έμ΄λ©°, κ·Έλ¬λ―λ‘ ν¨μ νΈμΆμ ννμμ΄λ€. λ°νλ¬Έμ λ κ°μ§ μν μ νλ€. 첫째, λ°νλ¬Έμ ν¨μμ μ€νμ μ€λ¨νκ³ ν¨μ λͺΈμ²΄λ₯Ό λΉ μ Έλκ°λ€. λ°λΌμ λ°νλ¬Έ μ΄νμ λ€λ₯Έ λ¬Έμ΄ μ‘΄μ¬νλ©΄ κ·Έ λ¬Έμ μ€νλμ§ μκ³ λ¬΄μλλ€.
function add(x, y){
return x + y;
console.log('hi!') // 무μ λλ€.
}
var result = add(1,2);
console.log(result); // 3
λμ§Έ, λ°νλ¬Έμ return ν€μλ λ€μ μ€λ ννμμ νκ°ν΄ λ°ννλ€. return ν€μλ λ€μ λ°νκ°μΌλ‘ μ¬μ©ν ννμμ λͺ μμ μΌλ‘ μ§μ νμ§ μμΌλ©΄ undefinedκ° λ°νλλ€. λ°νλ¬Έμ μλ΅ν μ μλ€. μ΄λ ν¨μλ ν¨μ λͺΈμ²΄μ λ§μ§λ§ λ¬ΈκΉμ§ μ€νν ν μ묡μ μΌλ‘ undefinedλ₯Ό λ°ννλ€. λ°νλ¬Έμ ν¨μ λͺΈμ²΄ λ΄λΆμμλ§ μ¬μ©ν μ μλ€. μ μμμ λ°νλ¬Έμ μ¬μ©νλ©΄ λ¬Έλ² μλ¬κ° λ°μνλ€.
12.7 λ€μν ν¨μμ νν
12.7.1 μ¦μ μ€ν ν¨μ
ν¨μ μ μμ λμμ μ¦μ νΈμΆλλ ν¨μλ₯Ό μ¦μ μ€ν ν¨μλΌκ³ νλ€. μ¦μ μ€ν ν¨μλ λ¨ ν λ²λ§ νΈμΆλλ©° λ€μ νΈμΆν μ μλ€. μ¦μ μ€ν ν¨μλ μ΅λͺ ν¨μλ‘ μ¬μ©νλ κ²μ΄ μΌλ°μ μ΄λ€.
(function add(x, y){
return x + y;
}()); // ν¨μ μ μμ λμμ μ¦μ νΈμΆλ¨
var result = add(1,2); // ReferenceError μ¦μ μ€ν ν¨μλΌ λ€μ νΈμΆ λΆκ°
12.7.3 μ€μ²© ν¨μ
ν¨μ λ΄λΆμ μ μλ ν¨μλ₯Ό μ€μ²© ν¨μ λλ λ΄λΆ ν¨μλΌ νλ€. κ·Έλ¦¬κ³ μ€μ²© ν¨μλ₯Ό ν¬ν¨νλ ν¨μλ μΈλΆ ν¨μλΌ λΆλ₯Έλ€. μ€μ²© ν¨μλ μΈλΆ ν¨μ λ΄λΆμμλ§ νΈμΆν μ μλ€. μΌλ°μ μΌλ‘ μ€μ²© ν¨μλ μμ μ ν¬ν¨νλ μΈλΆ ν¨μλ₯Ό λλ ν¬νΌ ν¨μμ μν μ νλ€.
function outer(){
var x = 1;
function inner(){
var y = 2;
console.log(x + y); //3
}
inner()
}
outer();
'π Language & CS knowledge > JavaScript (λͺ¨λμλ°μ€ν¬λ¦½νΈ Deep Dive)' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
14μ₯ μ μ λ³μμ λ¬Έμ μ (0) | 2022.07.04 |
---|---|
13μ₯ μ€μ½ν (0) | 2022.07.03 |
11μ₯ μμ κ°κ³Ό κ°μ²΄μ λΉκ΅ (0) | 2022.07.01 |
10μ₯ κ°μ²΄ 리ν°λ΄ (0) | 2022.06.29 |
09μ₯ νμ λ³νκ³Ό λ¨μΆ νκ° (0) | 2022.06.28 |