1. 현재의 무드: 재밌음
2. 오늘 학습한 내용 중 키워드: 원시 자료헝 vs 참조 자료형
3. 오늘 학습한 내용 요약
둘의 차이는 "컴퓨터가 데이터를 어떻게 저장하는가"에 있다.
자바스크립트에는 두 가지 카테고리로 데이터 타입을 나누고, 그 두가지를 다르게 대한다.
원시 자료형 (primitive data types)
: 객체가 아니며, 메서드를 가지지 않는 간단한 데이터 타입을 의미한다.
Numbers, String, Bollean, Null, Undefied, Symbols
* 근데, string 메서드 있지 않나?
-> 사실은 자바스크립트는 원시 자료형인 string을 string objects 로 변환한 후 string object method를 사용하는 것이다. (대충격)
저장 방식: 변수를 선언하면, stack에 변수명으로 저장.
let numOne = 50;
let numTwo = 50;
위 코드를 작성했을 때, 데이터 값이 같은지와 상관 없이 변수명에 따라 각각의 방을 내어준다.
let numOne = 50;
let numTwo = numOne // numTwo = numOne = 50
numOne = 100;
console.log(numOne) // 100
console.log(numTwo) // 50
따라서 하나의 값을 바꾸더라도 그에 해당하는 방에 있는 값만 변할 뿐, 다른 방에 있던 numTwo의 값은 유지된다.
참조 자료형 (reference data types)
: dynamic in nature. 고정된 크기를 가지지 않는다. 대부분이 객체로 취급되며, 따라서 메서드를 갖는다.
objectives, functions, collections, arrays, dates, other types of objects...
저장 방식: 변수를 선언하고 참조 자료형의 데이터를 할당할 경우, 컴퓨터는 그 데이터를 변수명에 넣어주는 것이 아니라, pointer, 해당 값이 메모리에 저장되어있는 주소만 변수명에 넣어준다. 그리고 데이터는 heap 이라는 dynamic한 곳에 따로 저장해준다.
let objecti1 = {
name: 'Bingeh',
age: 18
};
let object2 = object1 // stack에는 두개가 생기지만, 둘 다 같은 pointer를 갖게 됨
//updating object1
object1.age = 20;
console.log(object2.age) // 20
원시 자료형에서 변수명 = 해당 데이터가 저장된 곳
참조 자료형에서 변수명 = 해당 데이터가 저장된 곳의 주소
라는 것이 포인트!
Reference) https://www.freecodecamp.org/news/primitive-vs-reference-data-types-in-javascript/
'Web dev > Javascript' 카테고리의 다른 글
자바스크립트 09 클래스와 인스턴스 (0) | 2022.11.20 |
---|---|
자바스크립트 08 수정하기 (0) | 2022.11.09 |
자바스크립트 06 parseInt(), Number() 비교 (0) | 2022.11.06 |
자바스크립트 05 배열 메서드 .includes() 와 .indexOf() 비교 (0) | 2022.11.04 |
자바스크립트 04 문자열 메서드의 mutable, immutable 이란? (0) | 2022.11.03 |