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

JavaScript 기초 1 - 변수 선언

by 느림보어른 2021. 8. 17.

변수 선언

생각해보면 프로그래밍 언어마다 다양한 차이가 있지만 기본적인 차이점이 바로 변수 선언이다. 변수를 어떻게 선언하고 어떻게 저장되는지가 프로그래밍 언어의 특징을 잘 나타낸다고 본다.

 

에를 들어, C언어의 경우 변수를 선언할 때 변수의 type을 명시해주어야 한다. 하지만 Python의 경우 변수를 선언할 때 type을 명시하지 않아도 된다.

 

그렇다면 JS는 어떠한 방식으로 변수를 선언하는지 알아보자

var

var myName = 'Tuna'

var는 JS의 초기에 사용했던 변수 선언할 때 이것이 변수임을 나타내는 것이다. 즉, 더 이상 사용하지 않는 문법이다. 그럼에도 아직 이렇게 사용할 수 있는 이유는 JS의 언어가 발전해온 과정에서 현재까지도 과거 버젼의 JS를 사용하는 웹사이트가 있기에 그들을 위해 아직까지 남아있는 것이다.

 

var의 역할을 이것이 변수다라고 말해주는 것이다. 이것만으로도 충분하지 않을까라고 생각할 수 있지만 프로그래밍을 하다보면 한 변수의 경우 절대 프로그래밍 도중 수정되어서는 안되는 경우가 있다. 하지만 var로 선언된 변수의 경우 프로그래밍 도중 수정되어도 어떠한 에러도 발생하지 않는다. 그래서 이를 보안할 새로운 문법이 필요했고 그것이 const와 let이다.

const

const myName = 'Tuna'

myName = 'Yuna'
VM303:1 Uncaught TypeError: Assignment to constant variable.
    at <anonymous>:1:8

var에서 언급한 문제를 해결하기 위해 const를 사용한다. 위의 코드에서 const로 선언한 변수의 값을 수정하자 해당 변수가 const로 선언된 변수이기에 수정할 수 없다고 에러를 발생시킨다. 이러한 방식으로 절대 수정되서는 안되는 변수를 const로 선언하여 일어날 수 있는 문제를 미연에 방지한다.

let

let myName = 'Tuna'

myName = 'Yuna'
"Yuna"

let은 const와 반대되는 성격의 변수다. 말 그대로 프로그래밍 도중에 값이 변경될 수 있는 변수를 선언할 때 사용한다. 이러한 점만 보았을 때 var와 동일하다고 볼 수 있다. 하지만 위에서 언급한 var의 문제 외에도 더 다양한 문제가 있고 이를 해결한 것이 const와 let이다.

꼭 봐주었으면 하는 블로그

내가 JS 변수 선언에 대해 알아보면서 찾은 자료 중 정말 깔끔하게 정리한 블로그 포스팅을 찾았다. 위에서 언급한 프로그래밍 중 변수 수정 문제 외에도 var가 가지고 있는 문제들 그리고 그것을 해결한 cosnt와 let을 읽기 쉽게 정리해주었다. 혹시나 JS 변수 선언에 대해 검색해서 들어왔다면 아래의 블로그 포스팅을 꼭 읽어보길 바란다.

https://www.howdy-mj.me/javascript/var-let-const/

 

var, let, const의 차이 ⏤ 변수 선언 및 할당, 호이스팅, 스코프

자바스크립트에서 var로 변수 선언이 가능했는데, 왜 const와 let이 나왔으며 이 둘의 사용을 권장할까? 이를 정확하게 알기 위해서는, 변수의 선언 및 할당 과정, 호이스팅, 스코프를 알아야한다.

www.howdy-mj.me

결론

JS는 볼수록 독특한 언어다. 시작은 웹사이트를 더 발전하기 위한 언어로 시작해서 지금은 어떤 분야든 프로그래밍할 수 있는 만능 언어가 되었다. 그리고 이런 위치로 오기까지 많은 기능의 추가와 수정이 이루어지면서 또 그 흔적들이 남아있다. 우리가 프로그래밍 언어를 언어라고 말하는 것이 단순히 컴퓨터에게 명령을 내리기 위한 도구가 아닌 그 이상으로 현실에서 국가와 민족들이 그들의 문화와 역사를 바탕으로 발전해온 언어와 같다고 느껴졌다. 그래서 프로그래밍 언어를 도구라 하지않고 언어라 말하는 것이 아닌가 생각하게 되었다.