[JavaScript] Data Type(코어 자바스크립트)

link717·2020년 12월 5일
0

JavaScript

목록 보기
16/17
post-thumbnail

😐 Data Type의 종류

1) 기본형(Primitive type)

  • 숫자/문자열/Boolean/null/undefined/Symbol 등

    이름설명추가 설명
    숫자(Number)어떠한 것으로도 감싸지지 않고 쓰여진 숫자
    문자(String)JavaScript에 ""('') 안에 text 형태로 입력되는 문자열을 의미함Stirng 추가설명
    Booleantrue/false 2가지 형태의 데이터 유형falsy: boolean 문맥안에서 false로 인식되는 값들을 의미
    - 0
    - Empty strings like " " or ' '
    - null
    - undefined
    - NaN, or Not a Number
    Null내부적으로 어떤 값도 표현하지 않는 데이터 유형어떤 변수에 값이 존재하지 않음을 명시적으로 나타낼때 사용
    undefined정의되지 않은 데이터 유형을 의미하며
    null과는 다른 의미로 쓰임
    - 값을 대입하지 않은 변수에 접근할 때
    - 객체 내부의 존재하지 않은 Property에 접근할 때
    - return 문이 없거나 호출되지 않는 함수의 실행 결과
    Symbol객체의 Property를 위한 고유의 식별자로 쓰임ES6에 새롭게 추가된 유형

2) 참조형(Reference type)

  • 객체/배열/함수/날짜/정규표현식 등

    🤔 변수 선언과 데이터 할당

  • 변수 선언: 변경 가능한 데이터가 담길 수 있는 공간 또는 그릇을 만드는 행위

  • 데이터 할당: 변수를 선언하여 어떤 값을 할당하게 되면 자바스크립트 엔진은 다음과 같은 데이터 할당 프로세스를 진행한다.

    ① 변수 영역에서 빈 공간을 할당한다.
    ② 확보한 공간을 선언한 변수명으로 지정한다.
    ③ 데이터의 빈 영역에 변수의 값을 저장한다.
    ④ 변수 영역에서 변수명을 검색한 뒤 데이터가 저장된 주소를 변수영역과 연결한다.

    변수 영역과 데이터 영역을 구분하는 이유는 데이터 변환을 자유롭게 하고 메모리를 효율적으로 관리하기 위함이다.

    만약 미리 확보한 영역에서만 데이터 변환을 할 수 있다면 데이터를 다시 저장해야 할 때 데이터의 크기가 커지는 경우, 영역을 늘리는 작업이 필요하고 그 작업을 수행하기 위해서는 모든 데이터 영역을 재구성 해야하는 불필요한 연산작업이 수반되야 할 것이다.


  • 참조형 데이터의 경우, 변수를 복사하는 과정은 기본형과 다르지 않다. 다만 데이터 할당의 경우 참조형의 경우, 데이터 영역 → 객체의 변수 영역의 주소 복사가 추가로 이뤄진다는 차이가 있다.

    참조형 데이터의 '가변'은 데이터 자체가 아닌 내부 프로퍼티가 변경될 때만 성립된다.

    출처-코어 자바스크립트

profile
Turtle Never stop

0개의 댓글