모던 자바스크립트(ch6. 데이터 타입 ~ ch7. 연산자)

김도형·2022년 9월 23일

6장 데이터 타입

데이터 타입 종류(ES6 기준 7개 타입)

원시타입(6개)

  • 숫자 타입 : 실수타입
  • 문자열 타입
  • 불리언 타입
  • undefined 타입
  • null 타입
  • 심볼 타입 : ES6에서 추가된 7번째 타입

객체 타입(1개)

  • 객체, 함수, 배열 등

문자열 타입

작은따옴표(''), 큰따옴표(""), 백틱(``) 로 텍스트를 감싼다.

템플릿 리터럴

  • ES6부터 사용
  • 백틱 사용

멀티라인 문자열

  • 줄바꿈 허용 및 공백 적용

표현식 삽입

  • 표현식을 삽입하려면 ${}으로 표현식으로 감싼다.
  • 표현식 삽입은 템플릿 리터럴 내에서 사용해야함.
var first = 'Ung-mo';
var last = 'Lee';

// ES6: 표현식 삽입
console.log(`My name is ${first} ${last}.`); // My name is Ung-mo Lee

undefinded 타입

  • 변수 값이 없다는 것을 명시하려면 undefinded 이 아닌 null로 할당
  • 변수에 null을 할당하는 것은 변수가 이전에 참조하던 값을 더 이상 참조하지 않겠다는 의미

심볼 타입

  • 변경 불가능한 원시 타입의 값
  • 심벌 값은 다른 값과 중복되지 않은 유일무이한 값
  • 이름이 충돌할 위험이 없는 객체의 유일한 프로퍼티 키를 만들기 위해 사용

동적 타입 언어(JS)

  • JS의 변수는 선언이 아닌 할당에 의해 타입 결정(타입 추론)
  • 재할당에 의해 변수의 타입은 언제든지 동적으로 변함.

7장 연산자

형변환

  • 같은 타입이면 형변환 x
    "12" > "2" -> False, 사전 순으로 봤을 때 "1"이 먼저 나오기 때문에 False
  • 타입이 다르면 숫자 타입으로 형변환
    "12"<2 -> True, "12" -> 12로 형변환
  • 단, 더하기 연산자일 경우는 문자열로 형변환
    3 + "3" = "33"
  • 이와 같은 것을 암묵적 타입 변환 또는 타입 강제 변환이라고 한다.

비교연산자

  • 동등 비교(==) 연산자 : 먼저 암묵적 타입 변환을 통해 타입을 일치시킨 후 값은 값인지 비교.
    그래서, 동등 비교는 결과를 예측하기 어렵다.
  • 일치 비교(===) 연산자 : 타입과 값 일치하는 경우만 true 반환, 즉 암묵적 타입변환을 하지 않고 값을 비교

NaN 비교

NaN === NaN; // false
그래서 Number.isNaN(NaN) // true 사용해서 비교

object.is 메서드(ES 6 부터 도입)

  • 0은 양수 0, 음수 0 이 존재하면, 비교 시에는 object.is 메서드를 사용해야함.
-0 === +0; // true
Object.is(-0 +0); // false

typeof 연산자

  • null 타입 확인은 typeof 연산자가 아닌 일치 비교 연산자(===) 사용
var foo = null;

typeof foo === null; // -> false
foo === null; // -> true 

지수 연산자(ES7 도입)

2 ** 4 ; // 16 
  • 이항 연산자 중에서 우선순위가 가장 높음.

출처 : 모던 자바스크립트 Deep Dive(P.60 ~ P.92)
저자 : 이웅모 지음, 위키북스

profile
3년간 웹/앱, 자동제어 QA 🔜 개발자로 전향하여 현재 교육 회사에서 백엔드 개발자로 근무 중입니다.(LinkedIn : https://www.linkedin.com/in/dohyoung-kim-5ab09214b)

0개의 댓글