Javascript(1) - var, let, const 차이점

hamingu·2021년 3월 12일
4

Javascript

목록 보기
1/1
post-thumbnail

1) var, let, const?

자바 스크립트에서 변수를 선언할 때 사용하는 선언자이다.

#예시
var a = "kim"
let b = "Ha"
const c = "Min"

console.log(a,b,c)

output : Kim Ha Min

// var을 통해 "kim"이란 데이터를 가진 a라는 변수를 선언
// let을 통해 "Ha"란 데이터를 가진 b라는 변수를 선언
// const을 통해 "Min"이란 데이터를 가진 c라는 변수가 선언되었음을 알 수 있다.

2) var, let, const의 차이점(선언, 할당)

2-1) 재선언 여부

var : 변수 재선언이 가능하다.

var a = 1 // var을 이용해 a = 1로 변수를 선언
var a = 2 // a = 2로 변수 재선언

console.log(a)
// 오류없이 a 변수에 할당된 2가 출력된다.

let, const : 변수 재선언이 불가능하다

let a = 1
let a = 2
// 이렇게 재선언 할 경우 SyntaxError: Identifier 'a' has already been declared 에러 발생

// const로 변수를 선언해도 마찬가지의 에러가 발생한다.

var의 경우 필요에따라 바로 재선언이 가능하기 때문에 배운 문법들을 연습삼아 활용할 때는 매우 편하게 쓸 수 있다.

다만, 실제 코드에 활용할 때는 실수로 변수를 재선언하게 될 가능성이 있고 이럴 경우 별도의 에러가 발생되는 것도 아니기 때문에 코드가 길어지고 복잡해질 수록 실수를 잡아내기 어렵다.

반면에 let과 const의 경우 변수 재선언이 되지 않기 때문에 해당 선언자를 통해 실수로 변수를 재선언 하더라도 에러메시지를 통해 금방 실수를 바로잡을 수 있다.

2-2) 재할당 여부

var, let : 변수 재할당이 가능하다.

var a = 1
a = 2

let b = 1
b = 2

console.log(a,b)
output : 2,2

//위와 같이 var, let을 이용해 a, b의 변수를 선언 후 재선언이 아닌 변수에 값을 재할당을 하였다.
//오류 발생없이 정상적으로 2,2가 출력된다.

let의 경우 이미 선언된 변수를 다시 선언할 순 없지만 선언된 변수의 값을 다른 값으로 재할당 할 수는 있다.

const : 변수 재할당이 불가능하다

const a = 1
a = 2
// Uncaught TypeError: Assignment to constant variable.
// 에러가 발생되며 재할당이 되지 않는 걸 알 수 있다.

const의 경우 재선언, 재할당이 모두 되지 않는다.

2-3) 결론

var의 경우 앞서 이야기했듯 실수로 인한 재선언의 이슈가 발생할 수 있으니 let 또는 const로 변수를 선언하는 것이 좋으며, 받아야하는 값의 목적에 따라 변할 가능성이 있거나 변해야 하는 값이면 let을 절대 변하면 안되는 값이면 const로 선언하는 것이 좋겠다.

profile
프로그래밍구

0개의 댓글