원시 타입
있는 그대로 저장되는 데이터를 표현합니다
원시값을 변수에 할당하면 값이 복사되어 들어갑니다. 즉, 원시값이 할당된 변수들은 모두 자기 자신만의 고유한 값을 가지게 됩니다
- 불리언 : 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
참고
'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 |