Javascript

Javascript의 특징(2)

농담농담 2022. 5. 19. 20:22
더보기

undefined , null 의 차이?

  • undefined는 아무 값도 할당되지 않은 상태 : 변수 선언에 의해 확보된 메모리 공간을 처음 할당이 이뤄질 때까지 빈상태로 두지않고 undefined로 초기화 해놓는다.
  • null은 비어있는 , 존재하지 않는 값을 의미: 변수에 값이 없다는 것을 의도적으로 명시.
더보기

기본형 데이터? 참조형 데이터?

기본형 데이터(Primitive type) - 을 그대로 할당
  • Number
  • String
  • Boolean
  • Symbol(ES6에 추가, 객체 속성을 만드는 데이터 타입)
  • null
  • undefined

참조형 데이터(Reference type) - 값이 저장된 주소값을 할당


  • Object
  • Array
  • Function
  • RegExp
  • Map
  • 등등
더보기

불변 객체?

불변 객체란 무엇인가. 변하지 않는 객체 즉 이미 할당된 객체가 변하지 않는다는 뜻.

자바스크립트에서 기본형 데이터는 불변성 , 참조형 데이터는 가변성이다. 

불변 객체가 필요한 경우는 객체에 변화를 가해도 원본이 그대로 남아있어야 하는 경우이다.
ex) 정보가 바뀌었으면 알림 전송하는 경우, 바뀌기 전의 정보와 바뀐 후의 정보를 보여줘야하는 경우

참조형 데이터인 불변 객체를 만들 수 있는 방법은 기본적으로 2가지 인데 const Object.freeze()를 사용하는 것이다.

 

const : 할당된 값이 상수가 되는 것이 아닌 바인딩된 값이 상수. 객체 재할당 불가능 but, 객체의 속성은 변경 가능

Object.freeze() : 객체를 동결하기 위한 메소드, 동결된 객체를 반환하지만 객체의 재할당은 가능

 

더보기

얕은 복사? 깊은 복사?

기본형 데이터는 값을 복사 할 때 복사된 값을 다른 메모리에 할당 하기 때문에 원래의 값과 복사된 값이 서로에게 영향을 미치지 않는다.

하지만 참조값은 변수가 객체의 주소를 가리키는 값이기 때문에 복사된 값(주소)이 같은 값을 가리킨다.

 

얕은 복사란,

객체를 복사할 때  원래값과 복사된 값이 같은 참조를 가리키고있는 것을 말한다. 객체안에 객체가 있을 경우 한개의 객체라도 원본 객체를 참조하고 있다면 이를 얕은 복사라고 한다.

깊은 복사란,

깊은 복사된 객체는 객체안에 객체가 있을 경우에도 원본과의 참조가 완전히 끊어진 객체를 말한다.