[JavaScript] 데이터 타입

ITmakesmeSoft·2023년 2월 20일
0

JavaScript

목록 보기
7/11

데이터 타입

  • JavaScript의 모든 값은 특정한 데이터 타입을 가짐
  • 크게 원시 타입(Primitive Type)과 참조 타입(Reverence Type)으로 분류

원시 타입

Number

  • 정수 또는 실수형 숫자를 표현하는 자료형
  • NaN
    • Not-A-Number(숫자가 아님)

    • Number.isNaN()의 경우 주어진 값의 유형이 Number이고 값이 NaN이면 true, 아니면 false 반환

      Number.isNaN(0 / 0);       // true
      Number.isNaN(NaN);         // true
      
      Number.isNaN('NaN');       // false
      Number.isNaN(undefined);   // false
      Number.isNaN({});          // false
      Number.isNaN('blah blah'); // false
      
      Number.isNaN(true);        // false
      Number.isNaN(null);        // false
      Number.isNaN(30);          // false
      Number.isNaN('53');        // false
      Number.isNaN('');          // false

String

  • 문자열을 표현하는 자료형
  • 작은 따옴표 또는 큰 따옴표 모두 가능
  • 덧셈을 통해 문자열끼리 붙일 수 있음(곱셈, 나눗셈, 뺄셈은 불가능)
    const sentence1 = 'Hello';
    const sentence2 = "World";
    
    console.log(sentence1 + sentence2); // 'Hello World'
  • Template Literals
    • 내장된 표현식을 허용하는 문자열 작성 방식(ES6+부터 지원)

    • 백틱(```)을 이용하며, 여러 줄에 걸쳐 문자열을 정의하거나, ${variable}` 사이에 표현식을 넣을 수 있음

    • 파이썬의 f-string과 같은 기능

      const word = '홍길동';
      console.log(`안녕하세요, ${word}입니다.`) // 안녕하세요, 홍길동입니다.

Boolean

  • true와 false
  • 조건문 또는 반복문에서 boolean이 아닌 데이터 타입은 자동 형변환 규칙에 따라 true 또는 false로 변환됨
  • 자동 형변환(ToBoolean Conversions)
    데이터 타입falsetrue
    undefined항상 falseX
    null항상 falseX
    Number0, -0, NaN나머지 모든 경우
    String빈 문자열나머지 모든 경우
    ObjectX항상 true

undefined

  • 값이 정의되어 있지 않음을 표현하는 값
  • 변수 선언 이후 직접 값을 할당하지 않으면 자동으로 할당됨

null

  • 변수의 값이 없음을 의도적으로 표현할 때 사용하는 원시 데이터 타입
  • typeof 연산자를 통해 타입을 확인할 경우 Object로 확인되는데, 이는 설계 당시 버그임
  • 레거시 프로그램의 호환성 유지를 위해 아직까지도 존재하는 버그

Symbol


참조 타입

Array

  • 키와 속성들을 담고 있는 참조 타입의 객체
  • 순서를 보장
  • 주로 대괄호를 이용해 생성하고, 0을 포함한 양의 정수 인덱스로 특정 값에 접근 가능
메서드설명비고
reverse()배열의 순서를 반대로 정렬
push() & pop()배열의 맨 뒤에 요소를 추가 또는 제거
unshift() & shift()배열의 맨 앞에 요소를 추가 또는 제거
includes(value)배열에 특정 값의 존재 유무를 판별 후 true/false 반환
indexOf(value)배열에 특정 값의 존재 유무를 판별 후 인덱스 반환요소가 없을 경우 -1 반환
join([separator])배열의 모든 요소를 구분자를 이용해 연결구분자 생략 시 쉼표 기준

Array Helper Methods

  • 배열을 순회하며 특정 로직을 수행하는 메서드
  • 메서드 호출 시 인자로 callback 함수를 받는 것이 특징
    • callback 함수 : 어떤 함수의 내부에서 실행될 목적으로 인자를 넘겨받는 함수
메서드설명비고
forEach배열의 각 요소에 대해 콜백 함수를 한 번씩 실행반환 값 없음
map콜백 함수의 반환 값을 요소로 하는 새로운 배열 반환
filter콜백 함수의 반환 값이 참인 요소들만 모아서 새로운 배열 반환
reduce콜백 함수의 반환 값들을 하나의 값(acc)에 누적 후 반환
find콜백 함수의 반환 값이 참이면 해당 요소를 반환
some배열의 요소 중 하나라도 판별 함수를 통과하면 참을 반환
every배열의 모든 요소가 판별 함수를 통과하면 참을 반환

Object

  • 객체는 속성(property)의 집합이며, 중괄호 내부에 key와 value의 쌍으로 표현
  • key
    • 문자열 타입만 가능
  • value
    • 모든 타입(함수포함) 가능
  • 객체 요소 접근
    • 점(.) 또는 대괄호([])로 가능
    • key 이름에 띄어쓰기 같은 구분자가 있으면 대괄호 접근만 가능
profile
💎 Daniel LEE | SSAFY 8th

0개의 댓글