λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
μžλ°”μŠ€ν¬λ¦½νŠΈ

μ „μ—­λ³€μˆ˜μ™€ μ§€μ—­λ³€μˆ˜

by Youcodein 2022. 8. 3.
728x90
λ°˜μ‘ν˜•

μ „μ—­ λ³€μˆ˜μ™€ 지역 λ³€μˆ˜

λ³€μˆ˜λŠ” ν•¨μˆ˜ 블둝{}을 κΈ°μ€€μœΌλ‘œ λ³€μˆ˜μ˜ μ„ μ–Έ μœ„μΉ˜μ— 따라 'μ „μ—­ λ³€μˆ˜'와 '지역 λ³€μˆ˜'둜 λ‚˜λˆ•λ‹ˆλ‹€.
'μ „μ—­ λ³€μˆ˜'λŠ” ν•¨μˆ˜ 블둝{} λ°–μ΄λ‚˜ μ•ˆμ—μ„œ 자유둭게 μ‚¬μš© κ°€λŠ₯ν•˜μ§€λ§Œ 지역 λ³€μˆ˜λŠ” ν•¨μˆ˜ 블둝{} λ‚΄μ—μ„œλ§Œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ „μ—­ λ³€μˆ˜μ™€ 지역 λ³€μˆ˜μ˜ μ„ μ–Έ μœ„μΉ˜

μ „μ—­ λ³€μˆ˜ 지역 λ³€μˆ˜
var λ³€μˆ˜;
function ν•¨μˆ˜() {
}
function ν•¨μˆ˜() {
varλ³€μˆ˜;
}

μ˜ˆμ‹œ 3-14)

var kor = 90;
function getScore() {
     kor = 100; //μ „μ—­ λ³€μˆ˜
     console.log(kor); //100
} getScore();
console.log(kor); //100

ν•¨μˆ˜ 블둝 μ•ˆμ— μžˆλŠ” kor λ³€μˆ˜λŠ” μ „μ—­ λ³€μˆ˜μž…λ‹ˆλ‹€. κ·Έλ ‡κΈ° λ•Œλ¬Έμ— getScore()ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜κ²Œ 되면 korλ³€μˆ˜ 값이 90μ—μ„œ 100으둜 λ°”λ€Œκ²Œ λ©λ‹ˆλ‹€.

μ˜ˆμ‹œ 3-15)

var kor = 90;
function getScore() {
     var kor = 100; //지역 λ³€μˆ˜
     console.log(kor); //100
} getScore();
console.log(kor); //90

ν•¨μˆ˜ 블둝 μ•ˆμ˜ kor λ³€μˆ˜λ₯Ό var둜 μ •μ˜ν•˜μ˜€μŠ΅λ‹ˆλ‹€. ν•¨μˆ˜ 블둝 μ•ˆμ—μ„œ var둜 μ„ μ–Έλœ λ³€μˆ˜λŠ” 지역 λ³€μˆ˜κ°€ 되며 ν•¨μˆ˜ 블둝 λ°–μ˜ μ „μ—­ λ³€μˆ˜ korκ³Ό λ‹€λ₯Έ λ³„λ„μ˜ λ³€μˆ˜κ°€ λ©λ‹ˆλ‹€. ν•¨μˆ˜ 블둝 μ•ˆμ˜ 지역 λ³€μˆ˜λŠ” λ°˜λ“œμ‹œ var둜 μ„ μ–Έ ν•΄μ£Όμ–΄μ•Ό ν•©λ‹ˆλ‹€.
ν•¨μˆ˜μ˜ 지역 λ³€μˆ˜λŠ” ν•¨μˆ˜ 블둝 λ°–μ—μ„œ μ‚¬μš© ν•  수 μ—†μŠ΅λ‹ˆλ‹€.


ν•¨μˆ˜ 레벨 μŠ€μ½”ν”„μ™€ 블둝 레벨 μŠ€μ½”ν”„

varλŠ” ν•¨μˆ˜ 블둝{}μ—μ„œλ§Œ 지역 λ³€μˆ˜κ°€ μ‘΄μž¬ν•˜λ©° 블둝{}μ΄λ‚˜ μ œμ–΄λ¬Έ 블둝{}μ—μ„œλŠ” 지역 λ³€μˆ˜κ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. ES6μ—μ„œ μƒˆλ‘œ μΆ”κ°€λœ letκ³Ό constλŠ” 블둝{}μ΄λ‚˜ μ œμ–΄λ¬Έ λΈ”λ‘μ—μ„œλ„ μ§€μ—­λ³€μˆ˜λ₯Ό μ„ μ–Έν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ˜ˆμ‹œ 3-14

ν•¨μˆ˜ 블둝 μ•ˆμ— μžˆλŠ” kor λ³€μˆ˜λŠ” μ „μ—­ λ³€μˆ˜μž…λ‹ˆλ‹€.

var )

var num = 10;
{
     Lvar num = 20; //num은 μ „μ—­ λ³€μˆ˜μž…λ‹ˆλ‹€.
     console.log(num); //20
}
console.log(num); //20

let )

let num = 10;
{
     let num = 20; //num은 지역 λ³€μˆ˜μž…λ‹ˆλ‹€.
     console.log(num); //20
}
console.log(num); //10

const )

const num = 10;
{
     const num = 20; //num은 지역 λ³€μˆ˜μž…λ‹ˆλ‹€.
     console.log(num); //20
}
console.log(num); //10

letκ³Ό const둜 μ„ μ–Έλœ λ³€μˆ˜λŠ” 블둝{}의 지역 λ³€μˆ˜λ‘œ μΈμ‹ν•©λ‹ˆλ‹€.

예제 3-17)

var num = 10;
if (num === 10) {
     var sum = 20; //μ „μ—­ λ³€μˆ˜
}
console.log(sum); //20
let num = 10;
if (num === 10) {
     let sum = 20; //지역 λ³€μˆ˜
}
console.log(sum); //μ—λŸ¬

μ œμ–΄λ¬Έ 블둝 μ•ˆμ—μ„œ let으둜 μ„ μ–Έλœ λ³€μˆ˜λŠ” 지역 λ³€μˆ˜μ΄κΈ° λ•Œλ¬Έμ— μ œμ–΄λ¬Έ 블둝 λ°–μ—μ„œ ν˜ΈμΆœν•  수 μ—†μŠ΅λ‹ˆλ‹€.

예제 3-29

//ν•¨μˆ˜μ˜ μ „μ—­λ³€μˆ˜
var sum1 = 10;
function add1() {
    sum1 = 20;
};
add1 ();
console.log('μ „μ—­'+sum1);
//ν•¨μˆ˜μ˜ μ§€μ—­λ³€μˆ˜
var sum2 =30;
function add2() {
    var sum2 = 40;
    console.log('지역' + sum2);
}
add2();
console.log('μ „μ—­' + sum2);
//λΈ”λ‘μ˜ μ§€μ—­λ³€μˆ˜

var num1 = 50;
if (num1 === 50) {
    var num1 = 60;
}

console.log('μ „μ—­' + num1);
let num2 = 70;
if (num2 === 70) {
    let num2 = 80;
    console.log('지역' + num2);
}

console.log('μ „μ—­' + num2);

//κ²°κ³ΌλŠ” 검사-consoleμ—μ„œ 확인 κ°€λŠ₯
결과 보기
κ²°κ³ΌλŠ” 검사-consoleμ—μ„œ 확인 κ°€λŠ₯
μ „μ—­20
지역40
μ „μ—­30
μ „μ—­60
지역80
μ „μ—­70

var, let, const 비ꡐ 정리

λ³€μˆ˜ λ²”μœ„ λ³€μˆ˜ μ„ μ–Έ νŠΉμ§•
ν•¨μˆ˜ 레벨 μŠ€μ½”ν”„ var
  • 1. λ³€μˆ˜λ₯Ό μ€‘λ³΅ν•΄μ„œ μ„ μ–Έν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 2. ν•¨μˆ˜ 블둝{} λ‚΄μ—μ„œλ§Œ μ§€μ—­λ³€μˆ˜κ°€ μ‘΄μž¬ν•©λ‹ˆλ‹€.
블둝 레벨 μŠ€μ½”ν”„ let
  • 1. var와 κ°™μ§€λ§Œ 같은 λΈ”λ‘μ—μ„œλŠ” 이미 μ„ μ–Έν•œ λ³€μˆ˜λ₯Ό μ€‘λ³΅ν•΄μ„œ μ„ μ–Έν•  수 μ—†μŠ΅λ‹ˆλ‹€.
  • 2. 블둝, μ œμ–΄λ¬Έ λΈ”λ‘μ—μ„œλ„ 지역 λ³€μˆ˜κ°€ μ‘΄μž¬ν•©λ‹ˆλ‹€.
const
  • 1. 같은 λΈ”λ‘μ—μ„œλŠ” 이미 μ„ μ–Έν•œ λ³€μˆ˜λ₯Ό μ€‘λ³΅ν•΄μ„œ μ„ μ–Έν•  수 μ—†κ³  μ €μž₯된 값을 λ³€κ²½ν•  μˆ˜λ„ μ—†μŠ΅λ‹ˆλ‹€.
  • 2. 블둝, μ œμ–΄λ¬Έ λΈ”λ‘μ—μ„œλ„ 지역 λ³€μˆ˜κ°€ μ‘΄μž¬ν•©λ‹ˆλ‹€.
728x90
λ°˜μ‘ν˜•

'μžλ°”μŠ€ν¬λ¦½νŠΈ' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

λ°°μ—΄ κ΄€λ ¨ λ©”μ„œλ“œ  (10) 2022.08.11
μš”μ†Œ μ„ νƒμž  (5) 2022.08.07
ν•¨μˆ˜ μ΄ν•΄ν•˜κΈ°  (5) 2022.07.28
데이터 νƒ€μž…  (4) 2022.07.26
쑰건문 μ΄ν•΄ν•˜κΈ°  (5) 2022.07.26

λŒ“κΈ€