본문 바로가기

프로그래밍/Javascript

[JavaScript] ES6 자료형 정리 (1/2)

변수와 상수

  • 변수: 이름이 붙은 값, 값은 언제든지 바뀔 수 있다.
    • let currentTempC=22; // 섭씨온도 선언+초기값 할당
      currentTempC=22.5; // 값은 언제든지 변할 수 있다.
      let targetTempC; // let targetTempC=undefined;
      let targetTempC, room1 = "conrerence_room_a", room2="lobby";
    • let은 변수 선언에만 쓰이고, 각 변수는 한 번만 선언할 수 있다.
      • let문 하나에서 변수 여러 개를 선언할 수 있다.
    • 초기값을 할당하지 않는다면 암시적으로 특별한 값 undefined가 할당된다.
  • 상수: ES6에서 새로 생긴 개념. 한번 할당한 값을 바꿀 수는 없다.
    • const ROOM_TEMP_C = 21.5, MAX_TEMP_C=30;
    • 절대적인 규칙은 아니지만, 상수 이름에는 보통 대문자와 밑줄만 사용한다.

식별자 이름

  • 변수와 상수,함수 이름을 식별자identifier라 부른다.
    • 식별자는 반드시 글자나 달러 기호($), 밑줄(_)로 시작해야 한다.
    • 식별자에는 글자와 숫자, 달러 기호, 밑줄만 쓸 수 있다.
    • 유니코드 문자도 사용할 수 있다.
    • 예약어는 식별자로 사용할 수 없다(ex. let이라는 이름의 변수를 생성할 수 없다.)
    • 식별자는 대문자로 시작해서는 안 된다(클래스는 예외)
    • 밑줄 한개 또는 두 개로 시작하는 식별자는 아주 특별한 상황, 또는 '내부'변수에서만 사용한다.
      • 특별한 변수 카테고리를 만들지 않는 한, 변수나 상수 이름을 밑줄로 시작하지 않기
    • 제이쿼리를 이용하는 경우, 달러 기호로 시작하는 식별자는 보통 제이쿼리 객체라는 의미이다.
  • 가장 널리 쓰는 두 가지 식별자 표기법
    • 카멜 케이스
      • currentTempC, anIdentifierName
    • 스네이크 케이스
      • current_temp_c, an_identifier_name

리터럴

  • 값을 만드는 방법
  • 자바스크립트는 따옴표를 통해 리터럴과 식별자를 구별한다.
    • 숫자에는 따옴표가 필요 없다.
  • let room1="conference_room_a"; // "conference_room_a"(따옴표 안)은 리터럴이다.
    let currentRoom = room1;
    let roomTemp = 21.5; // 숫자에는 따옴표가 필요하지 않다
    currentRoom = conference_room_a; // error

원시 타입과 객체

  • 자바스크립트의 값은 원시 값primitive 또는 객체object
  • 원시 타입: 불변immutable
    • 원시 타입의 종류
      • 숫자
      • 문자열
      • 불리언
      • null
      • undefined
      • 심볼symbol
    • 불변성: 변수의 값이 바뀔 수 없다는 뜻은 아님
      • let str = "hello";
        str = "world";
  • 객체: 여러 가지 형태와 값을 가질 수 있다.
    • 내장 객체 타입
      • Array
      • Date
      • RegExp
      • Map과 WeakMap
      • Set과 WeakSet
      • Number(원시 타입 숫자에 대응)
      • String(원시 타입 문자열에 대응)
      • Boolean(원시 타입 불리언에 대응)

숫자

  • 실제 숫자중에는 근사치로만 표현할 수 있는 숫자도 많다(ex. 원주율, 1/3...)

  • 실제 숫자의 근사치를 저장할 때 IEEE-764 배정도 부동소수점 숫자 형식을 사용 - double

  • double형식의 근사치 결과는 실제 값과 다른 경우도 있다.

  • 자바스크립트에는 숫자형 데이터 타입이 하나뿐이다.

    • 고성능 정수연산이나 정밀 소수점 연산이 필요한 어플리케이션에서는 자바스크립트를 사용할 수 없다
  • 10진수,2진수,8진수,16진수 네 가지 숫자형 리터럴을 인식한다. 하지만 결국 숫자는 double 형식으로 저장된다.

  • 10진수 리터럴

    • let count = 10; // 정수
      const blue = 0x0000ff; // 16진수(==10진수 255)
      const umask = 0o0022; // 8진수 (== 10진수 18)
      const roomTemp = 21.5; // 실수
      const c = 3.8e6; // 지수
      const e = -1.6e-19; // 지수
      const inf = Infinity; // 양의 무한대
      const ninf = -Infinity; // 음의 무한대
      const nan = NaN; // 숫자가 아님
  • Number 객체 프로퍼티

    • const small = Number.EPSILON; 
      // 1과 더했을 때 1과 구분되는 결과를 만들 수 있는 가장 작은 값으로, 근사치는 2.2e-16이다.
      const bigInt = Number.MAX_SAFE_INTEGER; // 표현할 수 있는 가장 큰 정수
      const max = Number.MAX_VALUE; // 표현할 수 있는 가장 큰 숫자
      const minInt = Number.MIN_SAFE_INTEGER; // 표현할 수 있는 가장 작은 정수
      const min = Number.MIN_VALUE; // 표현할 수 있는 가장 작은 숫자
      const nInf = Number.NEGATIVE_INFINITY; // 음의 무한대
      const nan = Number.NaN; // NaN
      const inf= Number.POSITIVE_INFINITY; // 양의 무한대

문자열

  • 자바스크립트 문자열: 유니코드 텍스트
  • 자바스크립트 문자열 리터럴은 작은 따옴표', 큰 따옴표", 백틱`을 사용한다
    • 백틱은 ES6에서 도입됨
  • 이스케이프
    • 문자열 안에 따옴표를 사용해야 하는 경우, 역슬래시를 따옴표 앞에 붙인다.
    • const dialog = "He looked up and said \"don't do that!\" to Max."
    • 역슬래시는 자기 자신을 이스케이프 할 수 있다.
    • const s = "In JavaScript, use \\ as an escape character in strings."

심볼

  • 유일한 토큰을 나타낸다.
  • Symbol()생성자를 이용해 만든다.

'프로그래밍 > Javascript' 카테고리의 다른 글

[JavaScript] ES6 자료형 정리 (2/2)  (0) 2020.01.08