개인 공부 블로그

var, let, const 본문

Javascript

var, let, const

패잇 2023. 9. 19. 13:28

var과 let, const의 가장 큰 차이는 스코프의 범위이다. 

var - 함수 영역(레벨)의 스코프let, const - 블록 영역의 스코프

 

전역변수 선언

전역변수로 선언하고 싶다면 let을 쓰지 않고 변수명과 초깃값만 할당하면 된다. 

function calculateSum(n){
    sum = 0;	// 전역 변수 선언
    for(let i=0; i<n+1; i++){
    	sum += i;
    }
}    

calculateSum(10);
console.log(sum);	// 전역 변수 사용

 

let은 재할당은 가능하지만 재선언은 할 수 없다.

function calculateSum(n){
    let sum = 0;
    for(let i=0; i<n+1; i++){
    	sum += i;
    }
}    

let sum;
console.log(sum);

위 코드를 실행하면 sum이 이미 선언되었다는 오류가 발생한다. var은 재선언이 가능했었음.

-> 같은 변수 이름을 사용할 위험이 사라졌다.

 

호이스팅이 없는 변수

var은 호이스팅 때문에 변수를 선언하기 전에 실행하더라도 undefined 값을 가지고 있었음. 하지만 let을 사용한 변수는 선언하기 전에 실행하면 오류가 발생한다.

function print(){
    let x = 10;
    console.log('x is ' + x);
    console.log('y is ' + y);		// Cannot access 'y' before initialization at print
    let y = 20;
}

 

const

let과 마찬가지로 재선언이 불가, 상수이므로 재할당 불가함

 

변수 때문에 생기는 오류를 줄이기 위해 let, const를 사용하는게 좋다.

'Javascript' 카테고리의 다른 글

정규 표현식(regular expression)  (0) 2024.03.04
템플릿 리터럴  (0) 2024.02.29
HTML 문서의 기본 구조  (0) 2023.09.18
정적 / 동적 타입 자료형  (0) 2023.09.14
자바스크립트의 타입과 자료형  (0) 2023.09.14