[001] 자바스크립트 (JavaScript) - 핵심요약(변수 - var, let, const)

2022. 10. 10. 15:06프론트엔드개발/JavaScript

반응형

안녕하세요~ totally 개발자입니다.

 

var, let, const

 

자바스크립트에서 핵심적으로 알아야 할 사항들에 대하여 알아보도록 하겠습니다. 첫 번째 시간으로는 자바스크립트 변수의 종류와 선언하는 방법 등에 대하여 살펴보도록 하겠습니다.

 

키워드 설명
var 1995년부터 사용된 키워드이며 배열, 객체, boolean, String, Number 자료형태 모두 var 키워드로 선언합니다. 중복 선언이 가능한 이유 때문에 현재 개발 트렌드에서는 var를 거의 사용하지 않습니다.
let 2015년 ES6에 추가된 키워드로 var처럼 중간에 값을 변경할 수는 있으나 다시 선언하는 것은 허용되지 않습니다. 그래서 현재는 var을 사용하는 환경에서는 let으로 대체해서 사용합니다.
const const 역시 let처럼 ES6에 추가되었고 변하지 않는 변수 즉 상수(constant)를 뜻합니다. 한 번 변수가 할당되면 그 변수의 값은 다시 선언할 수도 없고 변경도 더 이상 허용되지 않습니다.

예제를 살펴보도록 하겠습니다. 

 

[var 예제]

var a = 123;

a = 234;

var a = 234;

 

위 코드는 모두 잘 실행됩니다. 이것이 var의 특징이며 중간에 값을 변경하는 경우, 다시 선언하는 경우 모두 가능합니다.

 

 

[let 예제]

let b = 123;

b = 234; 

let b = 234; 

 

위 코드에서 b = 234;로 수정하는 경우에는 가능하지만 let b = 234;로 새롭게 선언하는 것은 불가능합니다.

 

 

[const 예제]

const c = 234;

c = 345;

const c = 456;

 

위 경우에는 const c = 345; 첫 번째 statement만 실행되고 나머지 부분은 모두 오류를 발생시킵니다. 그 이유는 const로 선언한 변수는 값을 수정하는 것도, 다시 선언하는 것도 가능하지 않기 때문입니다.

 

 

[반드시 확인하고 넘어가야 할 부분]

여기서 한 가지 확인하고 넘어가야 할 부분이 있습니다.

 

let arr = [1,2,3,4];

arr.push(5);

 

const arr = [1,2,3,4];

arr.push(5);

 

이렇게 let으로 선언한 배열과 const을 사용해서 선언한 배열에서 push 등으로 배열의 값을 추가하거나 값을 빼고자 할 때, 둘 중 어떤 것이 옳은 방법일까요? 그 답은 상황에 따라 다르게 적용되겠지만 const arr = [1,2,3,4]가 권장됩니다. 여기서 const는 한 번 선언되면 변경될 수 없다고 했기 때문에 과연 push 등으로 배열을 수정할 수 있는지에 대해 의문이 제기될 것으로 판단됩니다. 결론적으로는 가능합니다. 그 이유는 객체와 배열에서는 메모리값 즉 저장된 공간을 가리키는 정보에 대해서만 상수로 지정해놓았고 그 객체 또는 배열의 정보 자체는 변경할 수 있기 때문입니다. 그래서 const로 선언된 배열에서 메모리값 자체를 변경하는 경우 arr = [3,4,5]에는 불가능하지만 arr.push(4), arr.pop() 등은 저장된 메모리값 자체가 변경되는 게 아닌 메모리값에 접근하여 정보를 수정하는 것이기 때문에 가능한 것입니다. 물론 let arr = [1,2,3,4]로 지정된 경우 arr = [6,7,8]은 당연히 가능하지만 보통 배열은 다시 선언하는 경우가 드물기 때문에 const로 객체 또는 배열을 선언하는 것이 권장됩니다. 다음 시간에는 데이터 타입에 관하여 알아보도록 하겠습니다. 감사합니다.

 

[유튜브 강좌 영상]

 

https://youtu.be/ahdWru08_ys

 

반응형