TIL 05 : 자료형 (데이터 타입)

판다짱구·2022년 6월 15일
1

TIL

목록 보기
5/7
post-thumbnail

🗂 파트 1 > 코어자바스크립트 > 자바스크립트 기본


📚 2.5 자료형


🔵 동적 타입(dynamically typed) 언어

  • 자바스크립트 == 동적 타입 언어
    자료의 타입은 있지만 변수에 저장되는 값의 타입은 언제든지 바꿀 수 있는 언어
  • 자료형은 크게 8가지가 있다.

📌 1. 숫자형(Number Type)

  • 정수(integer), 부동소수점 숫자(floating point number).
  • + - / * 등 연산 가능.
  • Infinity, -Infinity, NaN같은 특수 숫자 값(special numeric value), 자바스크립트에선 특수 숫자 값을 숫자형으로 분류.
    • Infinity : 어떤 숫자든 0으로 나누면 무한대를 얻을 수 있다.
    • NaN : 계산 중 에러 발생했다는 뜻. (부정확하거나 정의되지 않은 수학 연산을 사용시) 😂 말이 안 되는 수학 연산을 하더라도 자바스크립트는 NaN을 반환하며 연산이 종료될 뿐 치명적인 에러를 내뿜으며 죽지 않는다. 😂

📌 2. BigInt형

  • 길이의 제약 없이 정수를 다룰 수 있게 해주는 숫자형
  • 호 관련 작업같이 아주 큰 숫자가 필요한 상황이거나 아주 높은 정밀도로 작업을 해야 할 때.
  • (1)정수 리터럴 끝에 n을 붙이거나 (2)함수BigInt를 호출하면 문자열이나 숫자를 가지고 BigInt 타입의 값을 만들 수 ⬇️
  • 일반 숫자를 섞어서 사용할 순 ❌
    • 섞어서 써야 하는 상황이라면 BigInt()Number()를 사용해 명시적으로 형 변환을 해주기(단, 숫자형에서 허용하는 자릿수를 넘으면 나머지 비트는 자동으로 잘려 나간다.)

📌 3. 문자형(String)

  1. 큰따옴표: "Hello"
  2. 작은따옴표: 'Hello'
  3. 역 따옴표(백틱, backtick): `` 👍🏻
    백틱으로 감싸고 변수나 수학 관련 표현식${…}안에 넣어주면 문자열 중간에 손쉽게 넣을 수 있다

📌 4. 불린형/논리형(Boolean)

  • truefalse 두 가지 값
  • 긍정(yes)이나 부정(no)을 나타내는 값을 저장할 때
  • 비교 결과를 저장할 때

📌 5. Null

  • null 값만을 위한 독립 자료형
  • 존재하지 않는(nothing) 값
  • 비어 있는(empty) 값
  • 알 수 없는(unknown) 값

📌 6. Undefined

  • undefined 값만을 위한 독립 자료형
  • 값이 할당되지 않은 상태
  • 변수는 선언했지만, 값을 할당하지 않았을때 (선언 ⭕️ / 할당 ❌ )

📌 7. 객체(Object)

  • 객체형을 제외한 다른 자료형은 문자열이든 숫자든 한 가지만 표현할 수 있기 때문에 원시(primitive)자료형이라 부릅니다. 반면 객체는 복잡한 데이터 구조를 표현할 수 있다.

📌 8. 심볼(Symbol)

  • 심볼(symbol)형은 객체의 고유한 식별자(unique identifier)를 만들 때 사용된다.

🔵 어떤 자료형인지 알려주는 typof 연산자

  • typeof Math ➡️ object
    : Math내장 객체이므로 "object" 출력.
  • typeof null ➡️ object
    : null은 객체가 아니다 ❌ 언어 자체의 오류. null은 별도의 고유한 자료형을 가지는 특수 값으로 객체가 아니지만, 하위 호환성을 유지하기 위해 오류를 수정하지 않고 남겨둔 것.
  • typeof alert ➡️ function
    : '함수’형은 따로 없다 ❌ 함수는 객체형에 속함. 이런 동작 방식이 형식적으론 잘못되긴 했지만, 아주 오래전에 만들어진 규칙이었기 때문에 하위 호환성 유지를 위해 남겨진 상태.

0개의 댓글