728x90
λ°μν
π‘ μ€μ΅ ν¬μΈνΈ!
π JavaScript μμμ λ³μ, ν¨μ Hoisting νμ μμ보기
- JavaScript λ λ³μλ ν¨μλ₯Ό μ μΈνλ©΄, Hoisting μ΄λΌλ νμμ΄ λ°μνλ€.
- Hoisting μ΄λ λ³μλ ν¨μμ μ μΈ λΆλΆλ§ λ³μμ λ²μ 맨 μλ‘ κ°μ λ‘ λκ³ μ¬λΌκ°μ κ°μ₯ λ¨Όμ ν΄μνλ κ²μ λ§νλ€.
function func(){
console.log('hello');
var name = 'Seoyun';
}
- μλ₯Ό λ€μ΄, μμ κ°μ func() ν¨μκ° μκ³ , κ·Έ ν¨μ μμ name μ΄λΌλ λ³μλ₯Ό λ§λ€μλ€κ³ κ°μ νμ.
function func(){
var name;
console.log('hello');
name = 'Seoyun';
}
- κ·ΈλΌ JavaScript κ° func() ν¨μμ μ½λλ₯Ό ν΄μνλ μμλ μμ κ°λ€.
- λ³μμ μ μΈ λΆλΆμΈ var name μ κ°μ λ‘ λ³μμ λ²μ 맨 μλ‘ λκ³ μ¬λΌκ°μ ν΄μνκ³ μ§λκ°λ κ²μ΄λ€.
- μ΄λ¬ν Hoisting νμμ ν¨μλ₯Ό λ§λ€μ΄λ, λ³μλ₯Ό let, const ν€μλλ₯Ό μ¬μ©ν΄λ λκ°μ΄ λ°μνλ€.
π λ³μ μ¬λ¬ κ° λ§λ€κΈ°
var name, age, sex;
- λ³μλ₯Ό μ½€λ§( , ) λ‘ κ΅¬λΆνλ©΄ μ¬λ¬ κ°λ₯Ό λμμ λ§λ€ μ μλ€.
- μμ κ°μ΄ μ½λλ₯Ό μμ±νλ©΄ var ν€μλλ₯Ό λ³μμ κ°μλ§νΌ μ¬μ©νμ§ μμλ λ³μκ° 3κ°κ° μμ±μ΄ λλ€.
var name = 'Seoyun', age, sex;
- μΌλΆ νΉμ μ 체 λ³μμ μ μΈκ³Ό λμμ ν λΉμ νκ³ μΆμΌλ©΄ μμ κ°μ νμμΌλ‘ μ½λλ₯Ό μμ±νλ©΄ λλ€.
π μ μλ³μμ λ³μμ μ°Έμ‘° μμ보기
π€ λ³μμ μ°Έμ‘° μμ보기
var age = 20;
function showAge(){
console.log(age)
}
showAge(); // 20
- λ³μμ νΉμ§ μ€μλ λ°κΉ₯μ λ³μλ μμμ μμ λ‘κ² μ¬μ©μ΄ κ°λ₯νλ€λ μ μ΄ μλ€.
- μ΄κ²μ κ°λ°μμ©μ΄λ‘ μ°Έμ‘° κ°λ₯νλ€λΌκ³ νννλλ°, JavaScript μμλ μ΄ νμμ closure λΌκ³ νλ€.
- μλ₯Ό λ€μ΄, μμ κ°μ μ½λκ° μμΌλ©΄ showAge() ν¨μ λ°μ μλ age λ₯Ό showAge() ν¨μ μμμ κ°μ Έλ€ μ¬μ©νλ κ²μ΄ κ°λ₯νλ€λ κ²μ΄λ€.
- λ§μ½, showAge() ν¨μ μμ age λΌλ λ³μλ₯Ό μ μν΄λμ κ² μλ€λ©΄ κ·Έ λ³μλ₯Ό κ°μ Έλ€ μ¬μ©νκ² μ§λ§, μμΌλ©΄ μμ°μ€λ½κ² λ°μ μλ λ³μλ₯Ό κ°μ Έλ€ μ°Έμ‘°νμ¬ μ¬μ©νλ€.
π€ μ μλ³μ μμ보기
<script>
var age = 20;
function showAge(){
console.log(age)
}
</script>
- νλ‘κ·Έλλ°μμλ μ μλ³μλΌλ κ²μ΄ μλ€.
- μ μλ³μλ, λͺ¨λ ν¨μλ if λ¬Έ, νΉμ for λ¬Έ λ΄λΆμμ 곡ν΅μ μΌλ‘ μ¬μ©(μ°Έμ‘°)ν μ μλ μ μ©ν λ³μλ₯Ό μλ―Ένλ€.
- μ μλ³μλ₯Ό λ§λ€μ΄ μ¬μ©νκ³ μΆλ€λ©΄ <script></script> μμ μ μΌ λ°κΉ₯ μμμ λ³μλ₯Ό λ§λ€μ΄μ£Όλ©΄ λλ€.
- μμ κ°μ΄ age λΌλ μ μλ³μλ₯Ό λ§λ€μ΄λλ©΄, κ·Έ λ°μ for λ¬Έ, if λ¬Έ, ν¨μ λ±μμ λͺ¨λ age λΌλ λ³μλ₯Ό μ¬μ©ν μ μλ€.
<script>
var age = 20;
console.log(age); // 20
console.log(window.age); // 20
</script>
- λ§μ½ var ν€μλλ‘ μ μλ³μλ₯Ό λ§λ€λ©΄ μ΄λ window λΌλ object μλ 보κ΄μ΄ λλ€.
- λ°λΌμ, μ κ²½μ°μ window.age μ κ°μ΄ μ½λλ₯Ό μμ±ν΄λ var ν€μλλ‘ λ§λ age μ λμΌνκ² μΆλ ₯μ΄ κ°λ₯νλ€.
<script>
window.age = 20; // μ μλ³μ λ§λ€κΈ°
console.log(window.age); // μ μλ³μ μ¬μ©νκΈ°
window.age = 30; // μ μλ³μ λ³κ²½νκΈ°
</script>
- μ μλ³μλ₯Ό μ격νκ² κ΄λ¦¬νκ±°λ ꡬλΆνκ³ μΆλ€λ©΄, μ μλ³μλ₯Ό λ§λ€ λ νΉμ μ¬μ© λ° λ³κ²½ν λ window λ₯Ό νμ©ν΄λ³΄λ κ²λ μ’λ€.
- node.js νκ²½μμλ window λμ global μ΄λΌλ object λ₯Ό νμ©ν μ μλ€.
728x90
λ°μν
'[κ°λ°] Practice > JavaScript ES6' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JavaScript / ES6] Template literals μμ보기 (0) | 2022.04.12 |
---|---|
[JavaScript / ES6] λ³μ μ°μ΅λ¬Έμ νκΈ° (0) | 2022.04.11 |
[JavaScript / ES6] λ³μ μ λ¬Έλ² μ΄μ 리νκΈ° (0) | 2022.04.11 |
[JavaScript / ES6] this & arrow function μ°μ΅λ¬Έμ νκΈ° (0) | 2022.04.11 |
[JavaScript / ES6] Arrow function μμ보기 (0) | 2022.04.10 |