λ³μμ μ ν¨μ± λ²μ (λ³μμ μ€μ½ν)
JavaScriptμμ κ°μ²΄λ ν¨μλ λͺ¨λ λ³μλΌ μΉνλ©°, ν΄λΉ λ³μκ° μ κ·Όν μ μλ λ³μ, κ°μ²΄, ν¨μμ μ§ν©μ λ³μμ μ ν¨μ± λ²μ (λ³μμ μ€μ½ν)λΌκ³ λΆλ₯Έλ€. λ³μμ μ ν¨μ± λ²μμ λ°λΌ μ§μ λ³μμ μ μ λ³μλ‘ λλκ² λλ€.
μ μ λ³μλ μ μ μ€μ½νμμ μ μΈν λ³μμΈλ°, μ μ μ€μ½νλ κ°μ₯ λ°κΉ₯μͺ½μ μ€μ½νλ₯Ό λ»νλ€. λ°λλ‘ μ§μ λ³μλ μ§μ μ€μ½νμμ μ μΈν λ³μμ΄λ©°, μ μμ΄ μλ λ€λ₯Έ μ€μ½νλ λͺ¨λ μ§μ μ€μ½νλΌκ³ λΆλ₯Έλ€.
μ§μ λ³μλ μ μ λ³μλ³΄λ€ λ λμ μ°μ μμλ₯Ό κ°μ§κ² λλ€.
μ€μ½νμ μ£Όμ κ·μΉ
- μμͺ½ μ€μ½νμμ λ°κΉ₯μͺ½ μ€μ½νλ‘λ μ κ·Όμ΄ κ°λ₯νμ§λ§ λ°λλ λΆκ°λ₯νλ€.
- λ°κΉ₯μͺ½ μ€μ½νμμ μ μΈν μλ³μλ μμͺ½ μ€μ½νμμ μ¬μ©μ΄ κ°λ₯νλ€.
- μμͺ½ μ€μ½νμμ μ μΈν μλ³μλ λ°κΉ₯μͺ½ μ€μ½νμμ μ¬μ©μ΄ λΆκ°λ₯νλ€.
- μ€μ½νλ μ€μ²©μ΄ κ°λ₯νλ€.
var ν€μλλ‘ μ μΈλ λ³μμ κ²½μ°
λΈλ‘{} μμμ μ μΈλ λ³μλ λΈλ‘μ μ€ν μ¬λΆμ λ°λΌ λΈλ‘ λ°μμμ μλ³ μ¬λΆκ° κ²°μ λλ©°, λΈλ‘μ κ°λ λΆλΆμ΄ μ€νλμ§ μμ κ²½μ°μλ λΈλ‘ μμμ μ μΈλ λ³μλ₯Ό λΈλ‘ λ°μμ μ¬μ©ν λ ν λΉλμ§ μμ undefinedκ° λλ€.
1. μ‘°κ±΄λ¬Έμ΄ μ€νλμ§ μλ κ²½μ°
ifλ¬Έμ μ€ν μ¬λΆμ λ°λΌ num1μ΄ μ μΈλλ©°, num1μ μλ³ κ°λ₯ μ¬λΆκ° κ²°μ λλ€. num1μ μλ³νμ§ λͺ» ν κ²½μ°, μ μλμ§ μμ κ°(undefined)κ° λλ€.
if (false) {
var num1 = 100;
console.log("λΈλ‘μ: " + num1);
}
console.log("λΈλ‘λ°: " + num1);
/** κ²°κ³Ό **/
λΈλ‘λ°: undefined
2. μ‘°κ±΄λ¬Έμ΄ μ€νλλ κ²½μ°
if (true) {
var num2 = 100;
console.log("λΈλ‘μ: " + num2);
}
console.log("λΈλ‘λ°: " + num2);
/** κ²°κ³Ό **/
λΈλ‘μ: 100
λΈλ‘λ°: 100
let ν€μλλ‘ μ μΈλ λ³μμ const ν€μλλ‘ μ μΈλ μμμ κ²½μ°
λΈλ‘ λ°μμ μ μΈλ λ³μλ λΈλ‘ μμΌλ‘ μΉ¨ν¬κ° κ°λ₯νλ©°, λΈλ‘ μμμ μ μΈλ λ³μλ λΈλ‘μ λΉ μ Έλμ¬ μ μλ€.
λ³μμ λ²μκ° λΈλ‘ μμΌλ‘ νμ λλ―λ‘ μλ‘ λ€λ₯Έ λΈλ‘λΌλ¦¬λ μ€λ³΅ μ μΈμ΄ κ°λ₯νλ€.
let num3 = 100;
if (true) {
//λΈλ‘ λ°μμ μμ±λ λ³μλ₯Ό λΈλ‘ μμμ μ¬μ© κ°λ₯
let num4 = num3 + 100;
console.log("λΈλ‘μ: " + num4);
}
// letμΌλ‘ μ μΈλ λ³μλ ifλ¬Έμ μ€ν μ¬λΆμ μκ΄ μμ΄ λΈλ‘μ λΉ μ Έλμ¬ μ μμ --> νλ‘κ·Έλ¨ μλ¬
console.log("λΈλ‘λ°: " + num4);
/** κ²°κ³Ό **/
λΈλ‘μ: 200
console.log("λΈλ‘λ°: " + num4);
^
ReferenceError: num4 is not defined
forλ¬Έμ μ΄κΈ°μμ λν μ ν¨μ± λ²μ
var ν€μλλ₯Ό μ¬μ©ν κ²½μ°μλ μ΄κΈ°μμμ μ μΈλ λ³μκ° forλ¬Έ λ°μμ μλ³ κ°λ₯νμ§λ§, let ν€μλλ₯Ό μ¬μ©ν κ²½μ°μλ μ΄κΈ°μμμ μ μΈλ λ³μλ μλ³μ΄ λΆκ°λ₯νλ€.
1. forλ¬Έμ μ΄κΈ°μμΌλ‘ varλ₯Ό μ μΈν κ²½μ°
for (var i=0; i<10; i++) {
console.log("λ°λ³΅λ¬Έ μ ::: " + i);
}
console.log("λ°λ³΅λ¬Έ λ° >>> " + i);
/** κ²°κ³Ό **/
λ°λ³΅λ¬Έ μ ::: 0
λ°λ³΅λ¬Έ μ ::: 1
λ°λ³΅λ¬Έ μ ::: 2
λ°λ³΅λ¬Έ μ ::: 3
λ°λ³΅λ¬Έ μ ::: 4
λ°λ³΅λ¬Έ μ ::: 5
λ°λ³΅λ¬Έ μ ::: 6
λ°λ³΅λ¬Έ μ ::: 7
λ°λ³΅λ¬Έ μ ::: 8
λ°λ³΅λ¬Έ μ ::: 9
λ°λ³΅λ¬Έ λ° >>> 10
2. forλ¬Έμ μ΄κΈ°μμ letμΌλ‘ μ μΈν κ²½μ°
for (let j=0; j<10; j++) {
console.log("λ°λ³΅λ¬Έ μ ::: " + j);
}
// forλ¬Έμ μ΄κΈ°μλ {}μ μν κ²μΌλ‘ 보기 λλ¬Έμ jκ°μ for λΈλ‘μ λΉ μ Έλμ¬ μ μμ
console.log("λ°λ³΅λ¬Έ λ° >>> " + j);
/** κ²°κ³Ό **/
λ°λ³΅λ¬Έ μ ::: 0
λ°λ³΅λ¬Έ μ ::: 1
λ°λ³΅λ¬Έ μ ::: 2
λ°λ³΅λ¬Έ μ ::: 3
λ°λ³΅λ¬Έ μ ::: 4
λ°λ³΅λ¬Έ μ ::: 5
λ°λ³΅λ¬Έ μ ::: 6
λ°λ³΅λ¬Έ μ ::: 7
λ°λ³΅λ¬Έ μ ::: 8
λ°λ³΅λ¬Έ μ ::: 9
console.log("λ°λ³΅λ¬Έ λ° >>> " + j);
^
ReferenceError: j is not defined
μ μΈλμ§ μμ λ³μμ κ²½μ°
let ν€μλλ λ°λμ 'μ μΈ -> ν λΉ'μ μμλ‘λ§ μ¬μ©μ΄ κ°λ₯νμ§λ§, var ν€μλλ ν λΉ νμ μ μΈμ΄ κ°λ₯νλ€.
/** let ν€μλ **/
x = 100; //ν λΉ
let x; //μ μΈ
console.log(x);
/** var ν€μλ **/
y = 200;
var y;
console.log(y);
/** κ²°κ³Ό **/
x = 100; //ν λΉ
^
ReferenceError: Cannot access 'x' before initialization
200
μ°Έκ³
https://okayoon.tistory.com/entry/%EC%8A%A4%EC%BD%94%ED%94%84Scope%EB%9E%80
'Study > JavaScript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JavaScript] λ°°μ΄ (0) | 2022.04.29 |
---|---|
[JavaScript] κΈ°λ³Έ λ¬Έλ² νμ© (0) | 2022.04.24 |
[JavaScript] λ°λ³΅λ¬Έ (0) | 2022.04.24 |
[JavaScript] 쑰건문 (0) | 2022.04.23 |
[JavaScript] μ°μ°μ(operator) (0) | 2022.04.23 |