본문 바로가기

자바스크립트

[Javascript] - const, let 그리고 var

 

 

 

자바스크립트에서  변수를 선언하는 방법은  세가지가 있습니다    var, let, const 입니다   하지만  var은 쓰면 안되는 문법입니다  왜일까요 한번 알아보겠습니다 

 

1.  var을 사용하지 않아도   변수 선언이 가능하다 

 

 

var age = 12;
console.log(age) 
//12 출력

 

자바스크립트에서는  변수의 값을 출력해주기 위해서는  먼저  값을 할당할  변수를 선언해줘야 합니다  앞에서 말했듯이 자바스크립트에서는  변수를 선언하는 방법이 세가지가 있습니다  그중  위에 코드는  var을  이용해  변수를 선언한 뒤  값을 출력하는 모습입니다  

다음은  순서를 바꿔서  값을 먼저 선언도 안된 age라는 변수에  할당을 한 다음  그 이후에  변수를 선언해봤습니다 일반적인  코딩은 아닌데요    결과가 어떻게 나올까요  

값이 정상적으로  출력됩니다  하지만  이건 정상적인 상황이 아닙니다  

다음은  var이 아닌 let을 이용해  변수를 선언해줬습니다   결과가 어떻게 나올까요? 

바로 오류가 나옵니다  이게 정상적인 상황이지요 이것이 var을 사용하면 안되는 첫번째 이유입니다 

 

 

2. 전역변수의  남발 

var name = 'david';
{
   name = 'john';
   
}
console.log(name) 
//'john'출력

위에와 같이  var은   함수에서 쓰는 {]말고는  블록을   인정하지 않습니다   따라서  전역변수가 남발이 되는  사태가 벌어집니다

 

 

3.  변수의  중복 

var color = 'blue'
console.log(color) // blue 출력 


var color = 'red'
console.log(red) // red 출력

이미 blue 가 할당된  color라는 변수가 있음에도  밑에 오류가 나지 않고 그대로 red가 출력됩니다  

 

이걸로  var을 쓰면 안되는 이유는  설명이 될거라고 생각합니다  그렇다면  let 과 const는 어떨까요?  이 두개는  var의  단점을 보완해줍니다  let과 const의 차이는 무엇일까요 ? 

 

let은 변수 const는 상수를 선언합니다  쉽게 이야기하면  let으로 선언된 변수에는 값을 재할당 할 수 있지만  const로 선언한 상수는  한번 할당해준 값을 변경할 수없습니다  

 

let name = 'bbs';
name = 'vvs';
console.log(name);
//vvs 출력

const name = 'bbs';
name = 'vvs';
console.log(name);
//error 출력