Variables Vs. Data
무엇이 변수이고 무엇이 데이터일까?
let myAge = 23;
위의 예제에서 myAge는 변수가 되고, 23은 데이터가 된다. 즉 변수는 데이터에 의미를 부여해 주는 이름이다. 23이라는 숫자는 내가 myAge라고 이름을 붙이기 전까지는 그냥 숫자였지만, naming한 후에는 내 나이가 23살이라는 의미를 갖게 된다. 즉 변수의 이름을 잘 지어야 데이터가 의미하는 바가 무엇인지를 쉽게 유추할 수 있다.
반면 let num = 23; 이라고 하면 num이 무엇을 의미하는 건지 유추하기 어렵다. 23이 숫자인 건 알겠는데, 그게 어떤 숫자야? 같은 상황이 벌어진다.
Why we use Variables?
변수와 데이터가 무엇인지 알았으니, 왜 programming에서 변수와 데이터를 사용하는지 알아보자.
어떤 웹 어플리케이션이든 Input => Process => Output의 과정을 거치게 된다. 예를 들어 사용자가 메뉴 버튼을 클릭하면 숨겨져 있던 메뉴의 목록을 보여주는 기능이 있다고 생각해 보자. 이 때 사용자의 클릭이 input이 되고 메뉴의 목록이 output이 된다. 그러면 process 과정은? 우리가 작성하는 웹 어플리케이션의 코드이다. 이 process를 작성하려면 input 정보가 필요하다. 클릭을 했는지 안했는지 알아야 메뉴를 보여주든 말든 하는 것이다. 클릭과 같은 input(data)을 저장할 장소(variable)를 사용하지 않으면 process가 불가능 해 진다.
How can we use Variables?
Declaration
let myAge = 23으로 돌아와서 let을 살펴보자. let이라는 keyword는 myAge가 변수임을 선언(declaration)해 주는 역할을 한다.
예를 들어 let이라는 키워드 없이 myAge = 23 으로 코드를 작성하면, 코드를 해석하는 interpreter는 myAge가 무엇인지 알 수 없다. myAge를 메모리 주소(변수 등을 저장하는 장소)를 할당 받는 변수로 사용하고 싶다면, let keyword를 사용해서 그 사실을 알려야 한다. let을 제외한 변수를 선언하는 keyword는 const, var이 있다.
let vs. const vs. var
let myAge = 23;
myAge = 24; // 재할당이 가능하다
const myAge = 23;
myAge = 24; // 재할당이 불가능해 에러가 발생한다
let과 const는 데이터를 재할당(re-assign) 하는 것이 가능하냐, 불가능하냐에 그 차이가 있다. let을 이용해서 변수를 선언하면, 내 생일이 지났을 때 myAge = 24; 라고 새로운 나이 데이터로 값을 재할당할 수 있다. 하지만 const를 이용하면 데이터를 변경할 수 없기 때문에 const mySex = female; 처럼 변하지 않는 데이터를 할당하는 것이 좋다. programming을 할 때에는 let 보다 const를 쓰는 것이 좋은데, 누군가 실수로 데이터를 변경할 가능성을 차단하기 위해서이다.
+) 재할당 가능 여부 뿐만 아니라, hoisting 방법에 따라 let, const, var를 비교할 수도 있다.
+) strict mode가 아닌 sloppy mode에서는 키워드를 작성하지 않고도, 변수를 선언할 수 있는데 이에 대한 내용은 추후에 Scope Chapter에서 다룰 것이다.
Value Assignment
assignment operator인 '=' 을 살펴보자. 이 연산자를 이용하면 메모리에 저장할 데이터를 변수에 할당(assignment)할 수 있다. 즉 변수에 값을 할당하려면 '=' 연산자를 사용하면 되고, 그게 다이다.
'Study > JavaScript' 카테고리의 다른 글
Function & Functional Programming (0) | 2022.03.26 |
---|---|
Control flow statement (0) | 2022.03.25 |
Operator (0) | 2022.03.25 |
Data Type (0) | 2022.03.24 |
What is Javascript? (0) | 2022.03.24 |