본문 바로가기
Javascript

지역변수/전역변수

by 코딩달림 2022. 7. 28.
728x90

전역변수와 지역변수

전역 변수는 함수 블록 밖이나 안에서 자유롭게 사용 가능하지만 지역 변수는 함수 블록 안에서만 사용 가능합니다.

전역 변수와 지역 변수 선언 방식

전역 변수 지역 변수
let 변수;
function 함수 () {
}
function 함수 () {
    let 변수;
}

함수 블록 안에 지역 변수는 반드시 var로 선언해주어야 하며 함수의 지역 변수는 함수 블록 밖에서 밖에 사용할 수 없습니다.

[예시] 전역 변수

var kor = 90;
function getScore(){
    kor = 100; // 전역 변수
    console.log ( kor ); // 100
}
getScore();
console.log( kor ); // 100

[예시] 지역 변수

var kor = 90;
function getScore(){
    var kor = 100; // 지역 변수
    console.log ( kor ); // 100
}
getScore();
console.log( kor ); // 100

블록에 의해 변수의 범위가 달라지는 것을 변수의 scope라고 합니다.

함수 레벨 스코프와 블록 레벨 스코프

var은 함수 블록에서만 지역 변수가 존재하며 블록이나 제어문 블록에서는 지역 변수가 존재하지 않습니다.
ECMAscript6에서 새로 추가된 let와 const는 블록과 제어문 블록에서도 지역 변수를 선언할 수 있습니다.
제어문 블록 안에서 let으로 선언된 변수는 지역 변수이기 때문에 제어문 블록 밖에서 호출할 수 없습니다.

[예시1]

var num = 10;
{
    var num = 20; // num은 전역 변수입니다.
    console.log(nim); // 20
}
console.log(num); // 20

[예시2]

let num = 10;
{
    let num = 20; // num은 지역 변수입니다.
    console.log(nim); // 20
}
console.log(num); // 10

[예시3]

const num = 10;
{
    const num = 20; // num은 지역 변수입니다.
    console.log(nim); // 20
}
console.log(num); // 10

※var, let, const의 비교 정리

변수 범위 변수 선언 특징
함수 레벨 스코프 var - 변수를 중복해서 선언할 수 있습니다.
- 함수 블록 내에서만 지역 변수가 존재합니다.
블록 레벨 스코프 let - var과 같지만 같은 블록에서는 이미 선언한 변수를 중복해서 선언할 수 없습니다.
- 블록, 제어문 블록에서도 지역 변수가 존재합니다.
const - 같은 블록에서는 이미 선언한 변수를 중복해서 선언할 수 없고 저장된 값을 변경할 수도 없습니다.
- 블록, 제어문 블록에서도 지역 변수가 존재합니다.

'Javascript' 카테고리의 다른 글

join()/push()/pop()  (9) 2022.08.11
요소 선택  (7) 2022.08.07
함수  (6) 2022.07.26
데이터 타입  (6) 2022.07.26
조건문  (5) 2022.07.26

댓글


광고 준비중입니다.