자바스크립트 타입
기본형
원시(primitive)값 (원시 자료형)
객체가 아니고 메서드가 없다. 모두 immutable이다.
- string
- number
- bigint
- boolean
- undefined
- symbol
- null
primitive wrapper object
- String
- Number
- BigInt
- Boolean
- Symbol
참조형
Object (객체)
참조 가능한 메모리에 있는 값.
var a = 1;
var b = a; // 원시 값 복사.
a = 2;
// a: 2, b = 1
var a = {value: 1};
var b = a; // 객체의 주소 복사. 즉, 같은 객체.
a.value = 2;
// a.value: 2, b.value: 2
- Date
- Array
- ...
결국은 다 object이다.
var a = [];
var b = new Date();
var c = 'hello'
typeof a; // "object"
typeof b; // "object"
typeof c; // "string"
결론
기본형은 값을 그대로 할당하고, 참조 타입은 값이 저장 된 주소값을 할당한다.
기타
instanceof
instanceof 연산자는 생성자의 prototype 속성이 객체의 프로토타입 체인 어딘가 존재하는지 판별합니다.
var a = new Date();
a instanceof Date; // true
a instanceof Object; // true
function Car() {
}
const auto = new Car();
console.log(auto instanceof Car); // true
Written by Justinausgithub.com/justinaus