본문 바로가기
카테고리 없음

node.js - 03.변수선언 - VAR, LET, CONST

이 글은 준비중인 node.js 책자의 일부입니다.

 

var
변수를 선언합니다. 값은 자유롭게 변경할 수 있으며 중복 선언도 됩니다.
숫자이든 문자열이든 논리값(true/false)든지 자유롭게 넣을 수 있습니다. ( 모든 변수 선언에 해당 )
예시)
var a;
var b=3;
var c=”korea!”;

 

let
변수를 선언합니다. 값은 자유롭게 변경할 수 있으나 중복 선언은 안됩니다.
예시)
let a;
let b=3;
let c=”korea!”;

 

const
변수를 선언합니다. 한번 선언하면 다시 선언 불가하며 값도 변경할 수 없습니다.
예시)
const a; // const 선언시 값은 무조건 넣어야 하기 때문에 오류가 발생합니다.
const b=3;
const c=”korea!”;


컴파일러 언어를 접하다 자바스크립트를 접하면 보통 당황하는 경우가 있습니다.
아니 무슨 변수를 선언도 안해?라는 것인데요.

변수란 컴퓨터 안에 상자를 만들어 놓고 그 안에 내용을 담는 것인데요.
상자를 만들면서 이름을 짓는 것을 변수 선언이라 합니다.

1) 아래는 A라는 상자를 만들고,

var A;


2) 아래는 A상자1이라는 값을 넣겠다는 뜻입니다.
A와 1이 같다는 의미가 아니라 A ← 1 의 의미입니다.

A=1;


3) 2)번 실행 후 아래 명령이 또 실행되면 무슨 의미일까요?
A라는 상자에 2라는 값을 새로 넣어주겠다는 의미입니다. 원래 들어 있던 1은 사라집니다.

A=2;

그런데 사실. 1)번은 필요가 없습니다. 2)번만 지시하면 A라는 상자가 자동으로 생기거든요.
없으면 만들고, 있으면 새 값을 바꿔서 넣어 줍니다.

이때 var A; 명령을 통해 상자를 새로 만드는 동작을

변수A를 선언한다’고 표현합니다. 상자를 변수(Variable)라고 부르거든요.

그리고 값을 넣어주는 동작을 대입한다고 부릅니다.

변수A에 1을 대입합니다’라고 표현하지요.

 

자바 스크립트에서 var 명령으로 변수를 선언하는 것은 미리 변수를 선언하여 속도를 약간 빠르게 하는 것 외에 별 의미는 없습니다.

아래 2줄은 연속 실행해도 별 문제가 없습니다.
var는 기본적으로 중복 선언을 허용하기 때문인데요.

var a=2;
var a=3;

 

그러다 보니 문제가 생겼습니다. 아래 코드가 있습니다.
중간에 보이는 포(for 어쩌고) 는 나중에 다룰 것이지만, 대략 설명드리면 1부터 10까지의 합계를 구하는 기능입니다. 이 부분을 포 루프(for loop)라고 합니다.

var i=30, sum=0;
  :
for(var i=1;i<=10;++i){
  sum=sum+i;
}
   :
i값은?


사람은 누구나 실수하기 마련인데요. 첫째줄에 변수i를 선언하면서
값 30을 넣고서 나중에 사용하려 했었는데..
실수로 for 문에서 또 다시 변수i를 선언해서 사용을 해버린 것입니다.

이 경우 처음 사용하려고 선언한 변수i의 값이 의도와 다르게 엉뚱한 값으로 바뀌거든요.
단순한 예시지만 유사사례로 에러를 잡느라 고생하는 분들을 봐 왔습니다.
필자도 겪은 일이기도 하지요.

let 은 이를 근본적으로 해결합니다.
var 를 모두 let 으로 바꾸어 실행하면,

let i=30, sum=0;
  :
for(let i=1;i<=10;++i){
  sum=sum+i;
}
   :
i값은?


콘솔창에서 바로 빨간 글씨의 오류가 표시되거든요. i라는 변수가 이미(already) 선언되었다는 의미입니다.
그러니까 개발하면서 바로 ‘아~ 이 부분은 실수했구나’라고 바로 알수가 있습니다.


let이 더 안전합니다.
하지만 유지보수하던 소스가 이미 var 를 많이 사용하는 경우라면 대대적인 개편을 계획하지 않는한 변경하지 않는 것이 좋습니다. 어중간한 수정은 더 큰 문제를 유발할 수 있거든요.
새로 개발하는 경우라면 var 대신 꼭 let 을 사용하시기를 권장드립니다.

그렇다면 const 는 무엇일까요?
const 는 상수변수(Constant Variable)란 특징이 있습니다.
변수는 변수인데 고정변수라는 것이지요.

그래서 선언하면서 단 한번만 대입 가능하고,
이 후에 선언은 물론이거니와 값을 변경할 수도 없습니다.

어디에 사용될까요?
값을 바꿀수 없는 불변의 값을 정의하는데 도움이 되겠지만
무엇보다 성능면에서 좋다는 장점이 있습니다.
const 는 향후 소스를 보면서 대략 어디서 사용하는지 감을 잡으시기 바랍니다.


필요하신 분에게 도움이 되시길 바랍니다. 그러면 이만 :)

도움이 되셨다면 공감 한방, 댓글은 굿잡!
감사합니다~


다음게시글 : https://itadventure.tistory.com/473

 

node.js - 04.변수선언 - 실습

이제 개발자 도구를 가지고 몇가지 실습을 해볼텐데요. 바로 바로 결과를 보도록 하겠습니다. F12 키를 눌러 개발자 도구 창을 띄우고 1) 콘솔 탭을 선택, 2) 그리고 그 아래 커서가 깜박이는 입력

itadventure.tistory.com