카테고리 없음

[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);

엄격 모드인지 아닌지에 따라 결과가 나뉩니다.

  1. undefined (비 엄격 모드)
  2. An error (엄격 모드)

(*)로 표시한 줄에서 무슨 일이 일어나는지 알아보면서, 왜 위와 같은 결과가 나타나는지 이해해 봅시다.

  1. str의 프로퍼티에 접근하려 하면 "래퍼 객체"가 만들어집니다.
  2. 엄격 모드에선 래퍼 객체를 수정하려 할 때 에러가 발생합니다.
  3. 비 엄격 모드에선 에러가 발생하지 않습니다. 래퍼 객체에 프로퍼티 test가 추가되죠. 그런데 래퍼 객체는 바로 삭제되기 때문에 마지막 줄이 실행될 땐 프로퍼티 test를 찾을 수 없습니다.

위 예시를 통해 원시값과 객체는 다르다는 것을 다시 한번 확인해 보았습니다.

원시값은 추가 데이터를 저장할 수 없습니다.

반응형