카테고리 없음
[JavaScript]원시값과 객체값(primitives, object)
쿠키는 서비스
2023. 11. 15. 19:00
반응형
원시값 (primitives)
- string(문자)
- number(숫자)
- bigint
- boolean
- symbol(유일한 식별자를 만들고 싶을 때 사용)
- null
- undefined
객체(object)
- 프로퍼티에 다양한 종류의 값 저장 가능
- {name: 'lia', age: 29}
- 함수도 객체의 일부이다.
let str = "Hello";
str.test = 5; // (*)
alert(str.test);
엄격 모드인지 아닌지에 따라 결과가 나뉩니다.
- undefined (비 엄격 모드)
- An error (엄격 모드)
(*)로 표시한 줄에서 무슨 일이 일어나는지 알아보면서, 왜 위와 같은 결과가 나타나는지 이해해 봅시다.
- str의 프로퍼티에 접근하려 하면 "래퍼 객체"가 만들어집니다.
- 엄격 모드에선 래퍼 객체를 수정하려 할 때 에러가 발생합니다.
- 비 엄격 모드에선 에러가 발생하지 않습니다. 래퍼 객체에 프로퍼티 test가 추가되죠. 그런데 래퍼 객체는 바로 삭제되기 때문에 마지막 줄이 실행될 땐 프로퍼티 test를 찾을 수 없습니다.
위 예시를 통해 원시값과 객체는 다르다는 것을 다시 한번 확인해 보았습니다.
원시값은 추가 데이터를 저장할 수 없습니다.
반응형