본문 바로가기

자바스크립트(jquery)

javascript var? let? const?

반응형

예전에 썼던 블로그를 보니

처음 코딩을 할 때는 막연히 var 도배를 했었구나... 다시 한 번 정리해보자

 

var

javascript 예시들? 을 보면 꽤나 많이 보이는 선언 종류라고 생각한다.

var name = 'bathingape'
console.log(name) // bathingape

var name = 'javascript'
console.log(name) // javascript

이런식으로 변수 재선언시 오류가 나지않는다.

오류가 나지 않는게 왜 문제가 되느냐? 라고 하는 사람들이 간혹있다.

짧은 코드, 혼자만 사용하는 코드에서는 크게 문제될건 없다.

하지만 코드가 많아지고 여러 사람이 관리하게 된다면 어떻게 사용하게 될지 파악하기 힘들고 값이 바뀔 우려가 있다.

지금 생각해보면 코드가 길어지고 하다보면 var 로 선언한 변수를 밑에서 다시 선언하여 코드가 꼬이는 등 상황이 생길 수 있다.

물론 지금까지 그런일은 없었지만 조심하자

 

let

위의 코드 중 변수 선언방식만 바꿔보자

let name = 'bathingape'
console.log(name) // bathingape

let name = 'javascript'
console.log(name) 
// Uncaught SyntaxError: Identifier 'name' has already been declared

name이 재선언되었다는 에러메세지가 나온다.

ES6이후 추가된 선언 방식으로 변수 재선언이 되지않는다 (const도 마찬가지)

let name = 'bathingape'
console.log(name) // bathingape

name = 'javascript'
console.log(name) // javascript

물론 재할당은 가능하다.

 

const

const 같은 경우는 재선언, 재할당 모두 불가능하다.

const name = 'bathingape'
console.log(name) // bathingape

const name = 'javascript'
console.log(name) 
// Uncaught SyntaxError: Identifier 'name' has already been declared

name = 'react'
console.log(name) 
//Uncaught TypeError: Assignment to constant variable.

보통 상수를 할당 할 때 사용하는 변수 선언이다.

이외의 차이점은 호이스팅(Hoisting) 이라는 동작 특성에서 나타나는데 여기서 작성하지는 않겠다.

현재 var 보다 안전하다는 이유로 let 이 표준으로 여겨지고있으므로

기본 변수 선언 : let

상수 선언 : const

으로 사용하면 될 듯 하다.

'자바스크립트(jquery)' 카테고리의 다른 글

라디오버튼 check속성  (0) 2024.03.22
화살표함수(Arrow Function)  (0) 2024.03.21
javascript로 만든 jquery empty  (0) 2024.03.21
window/document , on/ready  (0) 2024.03.21
javascript 동적 변수명 선언  (0) 2024.03.21