데이터 타입
자바스크립트가 제공하는 데이터 타입은 크게 원시 타입과 객체 타입으로 구분할 수 있습니다.
원시 타입과 객체 타입은 근본적으로 다릅니다. 원시 타입과 객체 타입은 크게 세 가지가 다릅니다!
- 원시 타입의 값, 즉 원시 값은 변경 불가능한 값이지만 객체(참조)타입의 값, 즉 객체는 변경 가능한 값입니다.
- 원시 값을 변수에 할당하면 변수에는 실제 값이 저장되지만 객체를 변수에 할당하면 변수에는 참조 값이 저장됩니다.
- 원시 값을 갖는 변수를 다른 변수에 할당하면 원본의 원시 값이 복사되어 전달됩니다.
원시 값을 갖는 변수를 다른 변수에 할당하면 원본의 원시 값이 복사되어 전달됩니다.
이를 값에 의한 전달이라 합니다.
이에 비해 객체를 가리키는 변수를 다른 변수에 할당하면 원본의 참조 값이 복사되어 전달됩니다.
이를 참조에 의한 전달이라 합니다.
원시 값
원시 값은 변경 불가능한 값입니다.
한번 생성된 원시 값은 read only 즉, 읽기 전용입니다.
변수와 값은 구분해서 생각해야 합니다.
변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름입니다.
값은 변수에 저장된 데이터로서 표현식이 평가되어 생성된 결과를 말합니다.
변경 불가능하다는 것은 변수가 아니라 값에 대한 진술입니다.
즉, 원시 값은 변경 불가능하다는 말은 원시 값 자체를 변경할 수 없다는 것이지 변수 값을 변경할 수 없다는 것은 아닙니다.
변수는 언제든지 재할당을 통해 변수 값을 변경할 수 있기 때문에 변수라고 부릅니다.
변수의 상대 개념인 상수는 재할당이 금지된 변수를 말합니다.
상수도 값을 저장하기 위한 메모리 공간이 필요하므로 변수라고 할 수 있습니다.
단, 변수는 언제든지 재할당을 통해 변수 값을 변경할 수 있지만 상수는 단 한 번만 할당이 허용되므로
변수 값을 변경할 수 없습니다.
상수는 재할당이 금지된 변수라 할 수 있습니다!
값에 의한 전달
var score = 80;
// copy 변수에는 score 변수의 값 80이 복사되어 할당됩니다.
var copy = scrore;
console.log(score, copy); // 80 80
console.log(score === copy); // true
// score 변수와 copy 변수의 값은 다른 메모리 공간에 저장된 별개의 값입니다.
// 따라서 score 변수의 값을 변경해도 copy 변수의 값에는 어떠한 영향도 주지 않습니다.
score = 100;
console.log(score, copy) // 100 80
console.log(score === copy) // false
score 변수와 copy 변수의 값 80은 다른 메모리 공간에 저장된 별개의 값이라는 것에 주의해야 합니다.
따라서 score 변수의 값을 변경해도 copy 변수의 값에는 어떠한 영향도 주지 않습니다.
오늘은 드림 코딩 엘리님의 자바스크립트 기초강의를 들었습니다!
제가 자바스크립트의 기초에 대해 많이 부족하다는 것을 느꼈고
정말 많은 도움이 되는 것 같습니다!
또한 모던 자바스크립트 책을 하루에 적어도 한 키워드씩 정리하는 것은 정말 저에게 많은 도움이 되고 있습니다.
자바스크립트 기초를 쌓고 타입 스크립트에 대한 공부도 필요할 것으로 보입니다!
또한 현재 프런트엔드 개발자가 되기 위해 노력하고 있기 때문에 리액트에 대한 공부도 잊지 않고 할 예정입니다!
열심히 공부하고 계신 개발자 지망생분들 모두 파이팅입니다!!!
👍👍👍✍️✍️✍️
'자바스크립트' 카테고리의 다른 글
TIL] 함수 (0) | 2021.07.28 |
---|---|
TIL] 객체 (0) | 2021.07.27 |
TIL] 프로퍼티 (3) (0) | 2021.07.25 |
TIL ] 프로퍼티 (2) (0) | 2021.07.23 |
TIL] 프로퍼티 접근 (2) | 2021.07.20 |