두번째 공부(개발공부)/JavaScript DeepDive

TIL] 변수

YTReeee 2023. 5. 20. 10:27

변수란?

데이터 값을 담는 메모리 공간의 이름이다.

let, const, var 키워드를 이용해 선언할 수 있다.

ES6이전 문법에서는 var 키워드로만 변수를 선언할 수 있었지만, ES6문법부터 let, const 키워드가 도입되었다.

var 키워드의 단점 때문에 let, const키워드가 등장하게 되었다.

var 키워드의 단점 // 출처 : https://chat.openai.com

 

변수를 선언하는 let, const 키워드의 가장 큰 차이는 재할당의 차이이다.

let 키워드는 변수 선언 및 값 할당 후 재할당이 가능하지만, const 키워드는 값의 재할당이 불가능하다.

 

변수는 선언을 통해 메모리 공간을 확보하고 해당 공간의 이름을 붙인다.

선언을 통해 이름을 가진 공간을 확보했다면, 할당을 통해 값을 채워넣는다.

출처 : 바구니 클립 아트 PNG는 588ku에 의해 설계되었고,에서 유래되었다.  https://kor.pngtree.com/freepng/a-basket-of-apples_2045803.html?sol=downref&id=bef

위 그림을 예시로 들면 바구니(변수)에 YONGTREE FARM 이라는 이름을 선언하고, 사과(값)을 할당한 것이다.

변수를 선언만 한 경우에는 자바스크립트에서 undefiend를 반환한다.

 

이렇게 선언된 변수는 자바스크립트 엔진에서 런타임 이전에 평가되어 코드의 선두로 끌어올려진다. 이를 호이스팅이라한다.

 

변수(식별자)의 이름을 정할 때는 규칙이있다.

  • 특수문자를 제외한 문자, 숫자, 언더스코어(_), 달러기호($)를 포함할 수 있다.
  • 단, 특수문자를 제외한 문자, 언더스코어(_), 달러기호($)로 시작해야 한다. 숫자로 시작은 허용하지 않는다.
  • 예약어(프로그래밍 언어에서 사용되고 있거나 사용될 예정인 단어)는 식별자로 사용할 수 없다(예약어 예시. if, else, null, var, const, let 등)
  • 자바스크립트는 대소문자를 구별한다. 이에 네이밍 시에도 구별해서 사용해야 한다.
  • 가독성을 위해 변수의 값이 의미하는 것을 표현해줄 수 있어야 한다. 
  • 하나 이상의 영어단어로 구성된 식별자를 만들때는 네이밍 컨벤션(카멜 케이스, 스네이크 케이스, 파스칼 케이스, 헝가리언 케이스)을 이용해 읽기 좋은 이름을 만들 수 있다(카멜케이스가 흔히 사용된다.)

회고

변수에 대해 정리해보았는데, 일단 내가 이해한 정도는 이정도인 것 같다. 이어지는 내용들도 일단 간단하게 정리한 후, 이해의 폭이 넓어질 수록 보완해가는 식으로 정리를 해야겠다.

변수란 값을 저장하는 공간이며, 이를 위해 선언과 할당이라는 동작이 필요하다라고 이해할 수 있겠다.