원시 자료형과 참조 자료형
변수
: 변할 수 있는 값, 데이터를 의미식별자
: 변수명
, 데이터(변수)를 식별하는 이름변수의 선언
: 메모리에 자리를 잡는 것 // let = a;값의 할당
: 메모리에 값을 채우는 것 // a = 1;객체가 아니면서 메소드도 가지지 않는 어떠한 값
number
,string
,boolean
,(null)
,undefined
,bigInt
,symbol
stack
이라는 사물함에 하나의 정보(data) 값
을 저장하나
의 의미를 가지는 데이터값에 의한 호출 (Call by balue)
정수 및 부동 소수점 숫자
숫자 데이터 타입으로 표현할 수 있는 범위를 넘어선 숫자를 표현할때 사용하는 데이터 타입 ⇒ 정수 리터럴 끝에 n을 붙여 표현할 수 있음
const bigNum = 123123123123123123123123n;
console.log(typeof bigNum)
따옴표로 감싼 문자 또는 문자열
string
(벡틱으로 감싼 문자열)true
또는 false
를 값으로 가지는 논리 타입
값이 없음(존재하지 않음)
값이 아직 지정되지 않음
객체의 고유한 식별자를 만들기 위해 사용
배열 []
,객체 {}
,함수 function(){}
정보의 크기가 천차만별이니까
메모리에공간
은 내가알아서 부여
하고,변수
는 그 공간의주소만 참조
하도록 하자!
⇒ 원시 데이터의 집합, 주소만 가지기 때문에 동적으로 크기가 변하는 데이터 보관 가능
heap
이라는 빈 공간에 값 대신 주소
를 저장heap
: 동적으로 크기가 변하는 데이터 보관함 참조
한다.참조
하여 실제 변수가 있는 장소에 도착해야 어떤 데이터가 있는지 읽을 수 있기 때문참조에 의한 호출 (Call by reference)
데이터 타입 집합, index를 사용해 순차적으로 접근할 수 있는 데이터 타입
여러 종류의 데이터 타입의 집합
각각의 요소는 키 와 값으로 구성되고 이러한 요소(키와 값의 한 쌍)를 프로퍼티 라고 부름
객체의 키는 항상 문자 또는 심벌 데이터 타입이어야 함
참조 자료형을 읽을 때, 미리 주소값과 메모리값을 잡아둔다고 생각하자!
[] === [] // false
컴퓨터가 위 코드를 읽으면서, 이미 두 개의 heap 저장 공간의 주소를 확보한다.
값은 같을지라도 주소가 다르니 해당 값은 false
가 나옴
let arr = [];
let arr1 = [];
console.log(arr === arr1) // false
// 값이 같아도 주소가 다름
arr = [0, 1, 2, 3]
arr1 = arr
console.log(arr === arr1) // true
// arr1 에 arr 과 같은 주소와 값을 복사해서 두개는 같은게 됨
arr1[0] = 100;
console.log(arr[0]); // 100
// arr은 arr1과 같은 주소를 가지기 때문에 arr1을 변경해도 arr도 같이 변경