[Inside Javascript] 2. 자바스크립트의 데이터타입

2022. 3. 25. 16:55·독서/Inside Javascript
반응형

1장에서 자바스크립트는 number, string, boolean, null, undefined 이외의 모든 것들은 객체라고 했었다.

자바스크립트의 데이터 타입 종류도 이에 맞게 구분된다.

- 기본타입

객체가 아닌 number, string boolean, null, undefined  는 '기본타입' 으로서 그 자체가 하나의 '값'을 나타낸다는 특징이 있다.

자바스크립트의 'typeof' 연산자를 이용해 각 데이터 별 기본타입을 확인할 수 있다. (함수가 아니라 연산자이므로 사용법에 주의)

각 타입별로 알아두면 좋은 부분을 짚고 가보자.

 

-Number

자바스크립트의 모든 숫자형 데이터는 64비트 부동소수점 형태로 저장된다. (C의 double과 유사)

그래서 5/2 의 연산값이 c와 다르게 2가 아니라 2.5가 나오므로, 몫연산을 할 때는 Math.floor() 함수를 이용해 소수점을 버려야한다.

(=> 파이썬과 비슷해서 개인적으로 나는 오히려 익숙했다.)

- String

문자열은 ' ' 과 " " 두가지 모두를 이용해서 만들 수 있다. (역시 파이썬과 유사하다)

단, 자바스크립트에서 문자열이 그 자체로 하나의 '값'을 가지기 때문에 값을 바꿀 수 없는 점에 유의 해야한다.

사진에서 볼 수 있듯이, "hello" 라는 문자열을 저장하고, 해당 문자열의 첫번째 문자를 인덱스로 읽는 것은 가능했으나,

첫번째 문자를 인덱스로 쓰는 행위는 반영되지 않았다.

즉, 자바스크립트에서 한번 생성한 문자열은 읽기만 될 뿐 쓰기는 할 수 없다.

그리고 자바스크립트답게 분명 프로그래머 의도와 달리 변경이 되지 않았음에도 그 어떤 오류를 내지 않는다..

- Boolean

true, false 자체가 boolean 타입의 데이터값이다.

- null & undefined

null 과 undefined 모두 값이 없음을 의미한다.

정확히는 null 은 개발자가 명시적으로 의도해서 '값이 없다' 라는 의미의 값을 담은 것이고,

undefined 정말로 아무런 값이 없는 상태를 의미한다. 그래서 undefined는 타입이자 값이다.

undefined 타입의 변수는 어떤 변수든 모두 undefined 값을 갖는다.

 

그리고 한가지 더 주의해야할 부분은 null 타입 변수의 typeof 연산자 결과가 object 라는 점이다.

따라서 어떤 변수의 값이 null인지 아닌지 확인할 때는 typeof 연산자가 아닌 === 연산자를 이용하여 비교해야 한다.

(=> 그렇다면 왜 null 은 타입으로서 소개하는 건지가 의문이다. typeof 연산자의 출력값이 object라면 null도 객체아닌가)

- 참조 타입

기본타입이 아닌 종류의 모든 값은 객체로서 전부 참조 타입이다. ('객체타입' 이라고 하기도 한다.)

자바스크립트에서 함수, 배열 등도 모두 객체로서 참조 타입이다.

 

기본 타입은 단 하나의 값만을 가지지만, 참조타입은 'key : value' 형태의 여러 프로퍼티를 가질 수 있다.

각 프로퍼티의 값은 기본타입, 참조타입 모두 넣을 수 있다.

(=> 그래서 null 의 타입이 object 임에도 기본타입으로 분류된 것 같다. 단 하나의 null 이라는 값만 가지기 때문이다.)

 

위에 서술했던 내용을 종합해보면 객체는 참조타입인 함수 역시 프로퍼티로 가질 수 있다.

이 경우, 객체가 프로퍼티로서 가진 이 함수를 '메서드'라고 부른다.

반응형
저작자표시 비영리 변경금지 (새창열림)

'독서 > Inside Javascript' 카테고리의 다른 글

[Inside Javascript] 6. 기본타입과 표준메서드, 연산자  (0) 2022.06.12
[Inside Javascript] 5. 배열  (2) 2022.05.09
[Inside Javascript] 4. 프로토타입 개념  (0) 2022.04.06
[Inside Javascript] 3. 자바스크립트의 객체  (0) 2022.03.26
[Inside Javascript] 1. 자바스크립트의 핵심 개념  (0) 2022.03.21
'독서/Inside Javascript' 카테고리의 다른 글
  • [Inside Javascript] 5. 배열
  • [Inside Javascript] 4. 프로토타입 개념
  • [Inside Javascript] 3. 자바스크립트의 객체
  • [Inside Javascript] 1. 자바스크립트의 핵심 개념
에버듀
에버듀
개발은 좋은데 뭘로 개발할까
  • 에버듀
    Blog. 에버듀
    에버듀
  • 전체
    오늘
    어제
    • 분류 전체보기 (614)
      • 개인 프로젝트 (43)
        • 토이 프로젝트 (3)
        • [2020] 카카오톡 봇 (9)
        • [2021] 코드악보 공유APP (22)
        • [2022] 유튜브 뮤직 클론코딩 (9)
        • [2025] 한글 SQL 데이터베이스 (0)
      • 팀 프로젝트 (22)
        • [2020] 인공지능 숫자야구 (4)
        • [2022] OSAM 온라인 해커톤 (10)
        • [2024] GDSC 프로젝트 트랙 (6)
        • [2025] 큰소리 웹 페이지 (2)
      • CS (335)
        • 자료구조 (19)
        • 어셈블리 (41)
        • 멀티미디어응용수학 (7)
        • 컴퓨터 구조 (29)
        • 알고리즘 분석 (4)
        • 컴퓨터 네트워크 (38)
        • 프로그래밍언어론 (15)
        • HCI 윈도우즈프로그래밍 (26)
        • 기초데이터베이스 (29)
        • 운영체제 (23)
        • 오토마타 (24)
        • 문제해결기법 (11)
        • 블록체인 (22)
        • 소프트웨어공학 (21)
        • 기계학습심화 (12)
        • 컴퓨터그래픽스와 메타버스 (8)
        • 분산시스템특론 (6)
      • 자기계발 (44)
        • 생각 정리 (22)
        • 대외활동 (11)
        • 동아리 (7)
        • 자격증 (3)
        • 머니 스터디 (1)
      • 알고리즘 (PS) (107)
        • BOJ (101)
        • Programmers (5)
        • 알고리즘 이모저모 (1)
      • WEB(BE) (8)
        • express.js (1)
        • Spring & Spring Boot (7)
      • WEB(FE) (2)
        • html, css, js (1)
        • React.js (1)
      • Tool & Language (6)
        • Edit Plus (1)
        • Git (1)
        • Python3 (2)
        • Java (2)
      • Infra (12)
        • AWS (1)
        • Oracle Cloud (8)
        • Firebase (2)
        • Network (1)
      • Android (18)
        • Java (6)
        • Flutter (12)
      • Window (2)
        • Visual Studio 없이 WPF (1)
        • MFC (1)
      • 독서 (14)
        • Inside Javascript (7)
        • Database Internals (6)
        • 한 글 후기 (1)
  • 링크

    • github
    • website
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
에버듀
[Inside Javascript] 2. 자바스크립트의 데이터타입
상단으로

티스토리툴바