코어자바스크립트 1강 #데이터 타입

DamHo Bae·2021년 5월 15일
1
post-thumbnail

데이터 타입

JS의 데이터 타입에는 크게 1.기본형, 2.참조형이 있다.

기본형 (불변값) : 숫자, 문자열, 불리언, null, undefined 등이 있음.
ES6, 추가로 심볼(Symbol) 추가

참조형: 객체(object), 배열(Array), 함수, 날짜, 정규표현식
ES6, 추가로 Map, WeakMap, Set, WeakSet 등 객체의 하위 분류에 속함.

기본형 vs 참조형

기본형 ➤ 값이 담긴 주솟값을 바로 복제
참조형 ➤ 값이 담긴 주솟값들로 이루어진 묶음을 가리키는 주솟값을 복제한다는 점

효율적으로 문자열 데이터의 변환을 처리하려면 변수와 데이터를 별도의 공간에 나누어 저장하는 것이 최적이다.

불변값

값이 변하면 변수, 변할 수 없으면 상수

가비지 컬렉터

  • 런타임 환경에 따라 특정 시점이나 메모리 사용량이 포화 상태에 임박할 때마다 자동으로 수거 대상자를 수거 한다.
    수거된 메모리는 다시 새로운 값을 할당할 수 있게 빈 공간이 된다.

불변객체

불변객체는 React,Vue,Angular 등의 라이브러리or프레임워크뿐만 아니라,
함수형 프로그래밍, 디자인 패턴 등에서도 매우 중요한 기초가 되는 개념이다.

undefined와 null

JS에서는 없음을 나타내는 두 가지가 있다. undefined, null

undefined:

  • 사용자가 명시적으로 지정할 수도 있지만, 값이 존재하지 않을 때 자바스크립트 엔진이 자동으로 부여하는 경우도 있다.
  • undefined를 지정하는 경우는 달리 덧붙일 내용이 없어 넘어가는 반면,
    자바스크립트 엔진은 어떤 값을 지정할 것이라고 예상되는 상황임에도 실제로는
    그렇게 하지 않았을 때 undefined를 반환한다.

다음 세 경우가 해당된다.

  • 값을 대입하지 않은 변수,
    즉 데이터 영역의 메모리 주소를 지정하지 않은 식별자에 접근할 때
  • 객체 내부의 존재하지 않는 프로퍼티에 접근하려고 할 때
    <프로퍼티: 변수 옵젝에 담긴 것을 접근하고자 할 때 . 찍어 접근>
  • return 문이 없거나 호출되지 않는 함수의 실행 결과

비어 있음을 명시적으로 나타내고자 할 때 null을 사용하자 !

🚫 null은 한 가지 주의할 점이 있다.

typeof null 이 object 라는 점!!

이는 자바스크립트 자체 버그라고 한다.


위 와 같이 일치 연산자(===)를 사용 함으로써 정확히 판별 가능하다.

정리를 하자.

  • 자바스크립트 데이터 타입에는 크게 기본형, 참조형이 있다.
  • 기본형(불변값), 참조형(가변값)
  • 변수는 변경 가능한 데이터가 담길 수 있는 공간,
    식별자는 그 변수의 이름을 말한다.
  • 변수를 선언하면 컴퓨터는 우선 메모리의 빈 공간에 식별자를 저장,
    그 공간의 값은 undefined를 할당한다.
    그 변수에 기본형 데이터를 할당하려고 하면 별도의 공간에 데이터를 저장하고
    그 공간의 주소를 변수의 값 영역에 할당한다.
  • 할당 과정에서 기본형과 차이가 생긴 이유는 참조형 데이터가 여러 개의 프로퍼티(변수)를 모은 그룹이기 때문이다. 참조형 데이터를 가변값으로 여겨야 하는 상황이 발생한다.
    참조형 데이터를 가변값으로 여겨야 하는 상황임에도 이를 불변값으로 사용하는 방법이 있다.
  • 내부 프로퍼티들을 일일이 복사(깊은 복사)
  • 라이브러리 사용 하는 방법

🗣 불변 객체는 최근 자바스크립트 진영에서 가장 중요한 개념이다!!!!

  • 없음을 나타내는 두가지 방법 : undefined, null
    undefined는 어떤 변수에 값이 존재하지 않을 경우를 의미!
    null은 사용자가 명시적으로 없음을 표현하기 위해 대입한 값!

따라서, 사용자가 없음을 표현하기 위해 명시적으로 undefined를 대입하는 것은 지양!🙏

profile
Frontend Developer

0개의 댓글