[서적] Do it ! 시리즈/Do it! 자바스크립트 입문

[Do it! 자바스크립트 입문] 10 - 5장 let과 constant로 변수 선언하기, 자바스크립트 변수 올바르게 사용하는 방법

다두디다 2022. 2. 18. 15:14
728x90

저번 시간에 배웠던 예약어 var에 이어 ES6에서 새롭게 사용하는 예약어 let과 const를 자세히 알아보겠습니다.

 

05 - 2 let과 constant로 변수 선언하기

 

#1 let과 constant 변수 특징

 

1. 블록 안에서만 쓸 수 있는 변수

 

var와 let, const의 가장 큰 차이는 스코프(scope)입니다.

( 스코프 : 변수가 적용되는 범위 )

var는 함수 영역의 스코프를 가지지만, 

let과 const는 블록영역의 스코프를 가집니다.

 

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

 

 

let으로 선언한 sum은 calcSum()의 블록{ } 안에서만 사용할 수 있습니다.

 

2. 재할당은 가능하지만 재선언은 할 수 없는 변수

 

 

let sum을 앞에 선언했다가 다시 재선언 하고 보니

콘솔창에 중복으로 선언되어 오류가 뜬다는 메세지가 나와있습니다.

 

이처럼 let으로 선언한 변수는 다시 선언할 수 없어서

var와 같이 실수로 변수의 이름을 사용할 걱정이 없습니다.

 

3. 호이스팅이 없는 변수

 

 

test()변수를 먼저 선언하고 그 안에 let y=200을 선언하고 보니

변수 y를 초기화 하기전에 사용할 수 없다는 오류 메세지가 뜹니다.

 

이처럼 let은 사용한 변수를 선언하기 전에 사용할 경우 오류가 발생합니다.

 

4. const 변수

 

const는 let과 마찬가지로 위에 모든 특징을 가지고 있습니다.

const로 선언한 변수는 상수이며, 상수란 프로그램 안에서 변하지 않는 값을 의미합니다.

즉, 변하지 않는 값을 변수로 선언할 때 const 예약어를 사용합니다.

 

#2 자바스크립트 변수, 이렇게 사용하세요

 

1. 전역변수는 최소한으로 사용한다.

 

전역변수는 프로그램 어디서든 접근할 수 있기 때문에 편리하지만,

예상치 못한 곳에서 값이 달라질 수 있습니다.

그만큼 오류가 발생할 확률이 높아지므로 전역 변수는 되도록이면 적게 사용하는 것이 좋습니다.

 

2. var 변수는 함수의 시작 부분에서 선언한다.

 

var를 사용한 변수는 내부에서 호이스팅이 생기므로 

함수 시작 부분에 선언하는 것이 가장 좋습니다.

( 호이스팅 : 상황에 따라 변수의 선언과 할당을 분리하여 선언 부분을 가장 위쪽으로 끌어 올림 )

 

3. for문에서 카운터 변수를 사용할 때는 블록 변수를 사용하는 것이 좋다.

 

// 블록 밖에서 var로 선언
var i;
for (i=1; i<=n; i++){
}
// let을 사용해서 블록 변수 선언
for (let i=1; i<=n; i++){
}

 

var는 함수 레벨 스코프고 let은 블록 스코프이기 때문에

두 가지 변수 선언법이 각각 다릅니다.

 

4. ES6을 사용한다면 예약어 var보다 let을 사용하는 것이 좋다.

 

var를 사용한 변수는 호이스팅이나 재선언 등 예상치 못하는 오류가 발생될 수 있기 때문에

호이스팅이 없고 재선언이 불가능한 let을 사용하는 것을 권장합니다.

 

 

728x90