Post

JS 원시값에 대해

Vanila JS 를 최대한 익혀두고 싶어서, 시간이 날 때 마다 유데미에서 유명한 강의 중 하나인 Jonas 의 JS 강의를 수강하기로 했다. 기초를 잘 갈고 닦자.

원시값이란?

먼저 7개가 존재한다.

  1. Number: 정수 모두 포함 let age = 23;
  2. String: 문자를 다루는 변수형 => “” 를 반드시 사용한다. let name = "김철수"
  3. Boolean: 논리값으로, true 와 false 두 가지가 있다. let adult = true;
  4. Undefined: 아직 값이 할당되지 않은 변수, 빈 값.
  5. Null: 마찬가지로 빈 값. null 과 undefined 의 차이는 다른 포스팅 참고.
  6. Symbol: 값이 바뀌지 않고 유일한 것을 위한 변수 종류. 지금은 별 필요 없을듯.
  7. BigInt: Number type 의 범위를 넘어서는 큰 값. 이것도 잘 모르겠다.

이전에 몇 개의 변수 종류를 다뤄서 그때 언급한 적이 있는 것 같은데, 원시값이란 객체도 아니고, 메소드 또는 속성을 가지지 않는 데이터를 말한다. 또한, 원시값은 불변(immutable)값으로 변경이 불가능하다. 쉽게 말해 객체가 아닌 7개의 변수 종류는 모두 원시값이라고 생각하면 편하다.

"그럼, let 을 쓰면 변수의 값을 변경할 수 있는데 이건 뭐냐?" 라고 할 수 있지만, 그건 원시값과 원시값을 담은 변수를 혼동하고 있는 것이다.

코드를 통해 잠깐 보자,

1
2
3
4
5
let name = "KIM";
let country = "KOREA";

name = "PARK"; // 가능.
country = "USA"; // 가능.

이 예시를 보면, “KIM” 과 “KOREA” 두 가지 모두 String 이라는 원시값이다. 그리고, namecountry 는 이 원시값을 담은 변수이다.

변수의 값은 변경이 가능하지만, “KIM” 과 “KOREA” 두 문자열 자체는 변경할 수가 없다.

변수가 원시값을 가지고 있다고 해서 원시 변수가 되는 것은 아니라는 말이다. 물론, const 를 쓴다고 해서 원시값이 되는 것도 아니다.

어떤 것인지 궁금하다면, const 에 대해서 다룬 나의 포스팅을 참고하길 바란다.

This post is licensed under CC BY 4.0 by the author.