본문 바로가기
JS/JS 핵심 개념

JS 타입 이해

by spare8433 2023. 3. 3.

원시 타입


있는 그대로 저장되는 데이터를 표현합니다


원시값을 변수에 할당하면 값이 복사되어 들어갑니다. 즉, 원시값이 할당된 변수들은 모두 자기 자신만의 고유한 값을 가지게 됩니다


  • 불리언 : true, false
  • 숫자 : 1, 2, 3 …
  • 문자열 : “Hello World”
  • null
  • undefined

typeof : 원시값의 종류를 알 수 있게 해주는 매서드이고 null 은 특이하게 object 명시됨


참조 타입


참조 타입은 변수에 값을 직접 저장하지 않습니다.변수에 저장되는 것은 메모리 안에서 객체의 위치를 가리키는 “포인터” 입니다. 무엇이 저장되느냐, 이것이 원시 타입과 참조 타입의 가장 큰 차이입니다.


※ 원시 타입 빼고 전부 참조 타입으로 봐도 무방


  • 객체 : { }
  • 배열 : [ ]
  • 함수 : function
  • Date
  • 정규표현식 : RegExp

원시 래퍼 타입


원시 타입을 객체처럼 편리하게 사용하도록 도와줍니다


원시 타입을 객체처럼 사용하는 순간, 자바스크립트 내부에서 사용하는 데이터의 인스턴스를 생성하고 만들어진 객체는 코드를 실행 후 바로 다음 줄에서 파괴됩니다. 이러한 과정을 오토박싱(autoboxing) 이라고 합니다


  • String
  • Number
  • Boolean

오토박싱(autoboxing) 을 설명하는 예


var name = "bit"
name.coin = "coin"
console.log(name.coin) // undefined

// 위 코드의 의미
var name = "bit"
var temp = new String(name)
temp.coin = "coin"
temp = null
console.log(temp.coin) // undefined

참고

https://www.inflearn.com/course/%EC%BD%94%EB%94%A9%EC%9D%B8%ED%84%B0%EB%B7%B0-js-%EC%96%91%EC%84%B1%ED%95%99%EA%B5%90

'JS > JS 핵심 개념' 카테고리의 다른 글

JS 프로토타입 상속 & subtype, supertype  (0) 2023.03.13
JS 프로토타입  (0) 2023.03.13
JS 생성자  (0) 2023.03.13
JS closure 함수  (0) 2023.03.13
JS this 개념 및 활용  (0) 2023.03.03