JavaScript - 원시 값(primitive)

oong·2022년 8월 15일
0

원시 타입과 객체 타입의 차이점

  1. 원시 타입의 값, 즉 원시 값은 변경 불가능한 값이다. 이에 비해 객체(참조) 타입의 값, 즉 객체 값은 변경 가능한 값이다.
  2. 원시 값을 변수에 할당하면 변수(확보된 메모리 공간)에는 실제 값이 저장된다. 이에 비해 객체를 변수에 할당하면 변수(확보된 메모리 공간)에는 참조 값이 저장된다.
  3. 원시 값을 갖는 변수를 다른 변수에 할당하면 원본의 원시 값이 복사되어 전달된다. 이를 값에 의한 전달이라고 한다. 이에 비해 객체를 가리키는 변수를 다른 변수에 할당하면 원본의 참조 값이 복사되어 전달된다. 이를 참조에 의한 전달이라 한다.

원시 값

  • 원시 타입의 값, 즉 원시 값은 변경 불가능한 값이다.(read only)
  • 불변성 - 불변성을 갖는 원시 값을 할당한 변수는 재할당 이외에 변수 값을 변경할 수 있는 방법이 없다.

문자열과 불변성

  • 자바스크립트는 개발자의 편의를 위해 원시 타입은 문자열 타입을 제공한다. 이는 자바스크립트의 장점 중 하나다.
  • 자바스크립트의 문자열은 원시 타입이며, 변경 불가능하다.
var str = 'Hello';
str = 'world';

console.log(str);

위의 코드를 실행하면 'world'가 출력된다. Hello와 world는 모두 메모리에 존재한다. 식별자 str은 문자열 Hello를 가리키고 있다가 문자열 world를 가리키도록 변경되었을 뿐이다.

var str = 'string';

str[0] = 'S';

console.log(str);

str[0] = 'S'처럼 이미 생성된 문자열의 일부 문자를 변경해도 반영되지 않는다. 원시 값은 어떤 일이 있어도 불변한다. 따라서 예기치 못한 변경으로부터 자유롭다. 이는 데이터의 신뢰성을 보장한다.

0개의 댓글

관련 채용 정보