Javascript - 변수(variable) var,let,const?

컴퓨터/Javascript

728x90
반응형

서론

다른 프로그래밍 언어와 마찬가지로 Javascript 또한 '변수'의 개념을 사용할 수 있습니다.

Javascript에서 변수를 선언하고 사용하는 방식에 대해서 배우고 효과적으로 사용하기 위해 각각의 특징들에 대해서 알아보겠습니다.

본문에서는 각각의 변수형들에 대해서 간단하게 설명하고 그 특징과 차이점을 알아보겠습니다.

 

변수(Variable)?

컴퓨터에서 데이터는 메모리 공간에 담깁니다.

예를 들어 10이라는 데이터를 메모리의 특정한 공간에 담았다면, 그 공간에 접근을 해야지만 데이터를 확인할 수 있을 것입니다.  이런 메모리 공간의 할당하고, 그 메모리공간의 별칭이 바로 변수의 개념입니다.

대부분의 언어에서는 이렇게 Variable을 이용하여 메모리와 데이터를 다루게 됩니다.

Javascript 또한 변수는 데이터를 담는 메모리 공간을 식별하기 위해 붙인 이름입니다.

 

변수의 사용방법

변수를 사용하기 위해서는 3가지의 과정을 거쳐야 됩니다.

  1. 선언(Declaration)
  2. 할당(Assignment) - (초기화 포함)
  3. 참조(Reference)

선언(Declaration)

가장 첫번 째 선언입니다. 

자, '이제부터 특정 메모리 공간의 이름은 OOO이야'라는 과정이 필요합니다.

 

Javascript에서는 3가지 형태로 변수를 선언할 수 있습니다.

  • var
  • let
  • const

할당(Assignment)

두번 째 메모리 공간의 이름을 정해 주었으면 그 메모리 공간에 을 넣어주는 과정입니다.

참조(Reference)

이제 변수명을 이용해서 메모리 안에 들어있는 값을 사용하는 과정을 참조라고 합니다.

 

Javascript에서 변수 선언 예시

앞서 말했듯이 var,const,let의 3가지의 형태로 변수를 선언할 수 있습니다.

선언하는 방법은 아래와 같습니다.

var a = 'var_type';
let b = 'let_type';
const c = 'const_type';

3가지 변수의 선언방법에는 차이점이 존재합니다.

 

가장 보수적인 const

const 키워드를 사용한 변수의 선언은 아주 보수적입니다. 특징을 나열해보자면 다음과 같습니다.

  • 선언과 동시에 값을 할당해야 된다.
  • 동일한 변수명의 선언을 할 수 없다.
  • 선언된 변수의 값을 재할당 할 수 없다.

예제 소스코드를 보면 다음과 같습니다.

const c = 'cosnt_type';
console.log(c); // 출력 'const_type'

const c = 'const_type2';
console.log(c); // Error! 동일 변수명으로 재 할당 불가

c = 'const_type3'; 
console.log(c); // Error! const로 선언된 변수는 값 재할당 불가

const test; // Error! 반듯이 선언과 동시에 할당을 해야됨

값 재할당이 가능한 let

const 보다 조금 더 자유로운 변수 형식인 let의 특징은 다음과 같습니다.

  • 선언과 동시에 값을 할당해야 된다.
  • 동일한 변수명의 선언을 할 수 없다.
  • 선언된 변수의 값을 재할당 할 수 있다.
let b = 'let_type';
console.log(b); // 출력 'let_type'

let b = 'let_type2';
console.log(b); // Error! 동일 변수명으로 재 할당 불가

b = 'let_type3'; 
console.log(b); // 출력 'let_tyup3'

let test; // Error! 반듯이 선언과 동시에 할당을 해야됨

자유로운 var

var의 경우 엄청나게 자유롭습니다. 말 그대로 다됩니다.

  • 선언만 할 수 있다.
  • 동일한 변수명 선언을 할 수 있다.
  • 변수의 값을 재할당 할 수 있다.
var a = 1
var a = 2
var a
a = 5

 

그럼 어떤식으로 사용하는 것이 좋은가?

본문만 읽었다면 이렇게 생각할 수 있습니다. '그냥 var가 만능이네 var만 쓰면 되는 거 아닌가?'

물론! var만 써서 사용은 가능합니다. 사실 Javascript의 등장 초기에는 var형 변수만이 전했습니다.

var의 경우 너무나 자유롭기 때문에 개발자가 의도하지 않는 문제가 발생할 확률이 높습니다.​

 

그래서 Javascript 또한 발전하면서 이런 var의 위험성을 줄이기 위해 let과 const 변수형이 추가되었습니다.

당연히 var 보다는 let과 const를 권장하고 있습니다.

 

하지만 사실, 여러분이 어떤 것을 사용하는 것이 정답이라고 말할 수 없습니다. 

다만, 소스코드가 길어질수록, 복잡해질수록 사용자의 실수로 중복된 변수명을 사용한다던가, 의도치 않은 값의 재할당을 할 수도 있습니다.

 

따라서 용도에 맞게 적절한 변수의 형태를 사용하길 바랍니다.

 

다음 포스팅 할 것

  • 변수의 범위
  • 호이스팅
  • TDZ
728x90
반응형

Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :