본문 바로가기

카테고리 없음

Typescript 변수

반응형

먼저 var 에 대해 알아볼건데 스코프 즉 범위의 차이로 알아 볼 수 있다. 

 

function outer(){
    function inner(){
        var score=0;

    }
    inner();
    console.log(score); // 에러 내부에서 외부 
}
outer();
function outer(){
var score=0;
    function inner(){
        console.log(score) // 접근 가능 외부에서 내부 
    }
    inner();
    console.log(score);
}
outer();

 

하지만 만약 if 문으로 var를 선언했을 때는 

 

function outer(){

	if(true){
     var score=0;  // outer 함수 내 어디서든 사용 가능
    }

console.log(score);

}

outer();

var는 함수 단위의 스코프를 가지기 때문.

 

이제 let키워드를 알아볼 건데 함수 단위가 아닌 블록 단위의 스코프를 가지고있다. 

function outer(){

	if(true){
    	let score =0; // number 타입으로 지정 
        score = 20;   // 같은 number타입 
        score = "20"; // 문자열로서 에러 발생
    };

	console.log(score); // if 블록 내부에서만 score 범위 유효
}

outer();

한 번 값을 할당하고 변수를 선언할 경우 그 변수 타입이 지정이 된다. 

 

function outer(){

	if(true){
    	let score; // 값을 정해주지 않고 아무런 타입이 와도 상관이 없게 선언만 
        score = 20;   // 에러 발생 X
        score = "20"; // 에러 발생 X
    };

	console.log(score); // if 블록 내부에서만 score 범위 유효
}

outer();

 

마지막으로 const 는 상수, 한 번 할당이 되면 바꿀 수 없다.

 

const score = 100; // 타입만 선언 할 것이 아니라 값도 무조건 적어줘야 한다
score = 30; // 이미 100으로 지정해줬기 때문에 에러 발생

 

반응형