JS 원시값에 대해
Vanila JS 를 최대한 익혀두고 싶어서, 시간이 날 때 마다 유데미에서 유명한 강의 중 하나인 Jonas 의 JS 강의를 수강하기로 했다. 기초를 잘 갈고 닦자.
원시값이란?
먼저 7개가 존재한다.
- Number: 정수 모두 포함
let age = 23;
- String: 문자를 다루는 변수형 => “” 를 반드시 사용한다.
let name = "김철수"
- Boolean: 논리값으로, true 와 false 두 가지가 있다.
let adult = true;
- Undefined: 아직 값이 할당되지 않은 변수, 빈 값.
- Null: 마찬가지로 빈 값. null 과 undefined 의 차이는 다른 포스팅 참고.
- Symbol: 값이 바뀌지 않고 유일한 것을 위한 변수 종류. 지금은 별 필요 없을듯.
- BigInt: Number type 의 범위를 넘어서는 큰 값. 이것도 잘 모르겠다.
이전에 몇 개의 변수 종류를 다뤄서 그때 언급한 적이 있는 것 같은데, 원시값이란 객체도 아니고, 메소드 또는 속성을 가지지 않는 데이터를 말한다. 또한, 원시값은 불변(immutable)값으로 변경이 불가능하다. 쉽게 말해 객체가 아닌 7개의 변수 종류는 모두 원시값이라고 생각하면 편하다.
"그럼, let 을 쓰면 변수의 값을 변경할 수 있는데 이건 뭐냐?"
라고 할 수 있지만, 그건 원시값과 원시값을 담은 변수를 혼동하고 있는 것이다.
코드를 통해 잠깐 보자,
1
2
3
4
5
let name = "KIM";
let country = "KOREA";
name = "PARK"; // 가능.
country = "USA"; // 가능.
이 예시를 보면, “KIM” 과 “KOREA” 두 가지 모두 String 이라는 원시값이다. 그리고, name
과 country
는 이 원시값을 담은 변수이다.
변수의 값은 변경이 가능하지만, “KIM” 과 “KOREA” 두 문자열 자체는 변경할 수가 없다.
변수가 원시값을 가지고 있다고 해서 원시 변수가 되는 것은 아니라는 말이다. 물론, const 를 쓴다고 해서 원시값이 되는 것도 아니다.
어떤 것인지 궁금하다면, const 에 대해서 다룬 나의 포스팅을 참고하길 바란다.
This post is licensed under CC BY 4.0 by the author.