본문 바로가기

javascript, framework/javascript

Step01_dataType10 2 (type 복습, 참조 데이터)

 

1. number type

 

let 변수명=숫자;

 

2. string type

 

let 변수명="문자";

 

3. boolean type

 

let 변수명=true;

let 변수명=false;

 

4. object type - 여러가지 타입을 묶어서 사용할때 사용한다.

 

let 변수명={key:value, key2:value2, key3:value3};

 

5. array type - 순서가 중요할때 사용한다. 순서가 0부터 시작한다.

 

let 변수명=[key:value, key2:value2, key3:value3];

 

6. function type

 

1. let 변수명=function(){};

2. function 변수명(){}

3. let 변수명=()=>{}

 

2번 형식은 로드시 실행된다.

 

7. function type과 매개 변수

 

매개 변수는  함수에 전달되는 값을 전달 받을 변수이다.

 

let 변수명=function(매개 변수){

        함수명(매개변수);

}

 

8. ==

 

값 == 값;

 

number, string, boolean type으로 출력된 값이 서로 같은 경우 true가 나온다.

 

object, array, function type은  heap 영역에 만들어진다. 따라서 이름이 다른 변수의 출력값이 같더라도 해당 타입의 형태로 출력된다면 false가 나온다. 반면 let으로 새로운 동일한 데이터의 변수명을 만들거나 해당 타입의 특정부분을 출력하여 number, string, boolean type으로 출력한다면 true가 나오는 것이 가능하다.

 

9. 원시 데이터와 참조 데이터

 

- 원시 데이터 타입 (primitive type)

 

number, string, boolean, null, undefined, biglnt, symbol

 

- 참조 데이터 타입 (reference type) 

 

object, array, function

 

- 차이

변경 가능 여부. 원시값은 변경 불가능하고 참조값은 변경이 가능하다. 

저장되는 성격. 원시 데이터는 실제값이 저장되고 참조 데이터는 heap 영역에 저장되어 참조값으로 저장된다. 쉽게 말해서 값이 저장된 위치 정보를 담는 데이터 형식이라고 볼 수 있다.

 

- 결과

결과적으로 8. == 에서 확인했듯이 원시 데이터는 실제값을 비교하기 때문에 같은 값이라면 true가 나오고 참조 데이터는 출력값이 같더라도 heap 영역의 참조값을 비교하기 때문에 false가 나온다.