220913 학습내용

연주·2022년 9월 13일
0

KDT 국비과정

목록 보기
2/6

22.09.13 화요일

📝 데이터타입

✏️ 값 vs 값의 묶음

let a = 1;
let b = 1;
console.log(a === b) // true

a : 1을 가리킨다 / 1a에 대입한다
실제값이 같아 true이다.

let c = [1,2,3];
let d = [1,2,3];
console.log(c === d); // false

⚠️ 같은 값인데 같다고 생각이 드는 건 우리의 관점이다.
⚠️ 컴퓨터이 관점으로는 메모리 주소가 다 다르기 때문에 같지 않다고 판별

cd는 다른 곳에서 각각 [1,2,3]을 가리키고 있다.

⚠️우리가 데이터를 넣는 것은 메모리를 할당한다고 한다.
메모리에 데이터 묶음을 할당

✏️ 원시 타입 vs 참조 타입

let a = 1
: '값' 그 자체를 다루는 데이터타입은 사람의 직관처럼 있어야 할 자리에 그대로 있다.
: 이러한 타입을 '원시타입(primitive type)'

let obj = [20,"hello",true]
👉주소 1번 / 주소 2번 / 주소 3번 👉 특수한 메모리공간에 지정

:값의 묶음을 관장하는 객체(하위 타입인 배열)은 실제 값이 '어디있는지'를 저장하기 때문에 사람의 관점에서 벗어남
:눈에 보이지 않는 영역을 식별하는 과정이어서, 자연스러운 관점의 충돌이 발생
:비유를 많이 보태어 '데이터 주소만'따로 저장하는 방식
:객채,배열과 같은 타입을 참조타입(reference type)이라 부르며

✏️ 얕은 복사 vs 깊은 복사

얕은 복사(shallow copy) : 같은 주소를 가리키는데 이름만 다른 것
깊은 복사(deep copy) : 값이 같아보여도 주소 전체를 통째로 복사하는 것


📝 생성자함수 - class

✏️ class 로 생성자함수 선언

class ItsMe {
  constructor(id,name,city) {
    this.id = id;
    this.name = name;
    this.city = city;
  }
}

class를 이용해서 ItsMe라는 생성자함수 선언 / 객체를 생성하기위한 템플릿

let IamYeonju = new ItsMe(1,"정연주","대전");
console.log(IamYeonju)
// ItsMe { id: 1, name: '정연주', city: '대전' }

✏️ extends

class yeonju extends ItsMe {
  constructor(id, name, city, eye) {
    super(id,name,city); // 상속받을 데이터
    this.eye = eye;
  }
}

extends를 이용해 클래스 상속되는 자식클래스를 만들기위해

let IamYeonjuPlus = new yeonju(1,"정연주","대전",false)
console.log(IamYeonjuPlus);
// yeonju { id: 1, name: '정연주', city: '대전', eye: false }
[
profile
성장중인 개발자🫰

0개의 댓글