모던 자바스크립트(ch8. 제어문 ~ ch9. 타입변환과 단축 평가)

김도형·2022년 9월 23일
0

8장 제어문

블록문

  • 세미콜론은 자체 종결성을 갖기 때문에, 블록문의 끝에는 세미콜론을 붙이지 않는다.

break

  • 레이블 문, 반복문, switch 문의 코드 블록 외에 break문을 사용하며 SyntaxError(문법 에러) 발생

9장 타입 변환과 단축 평가

타입 변환이란?

  • 명시적 타입 변환 or 타입 캐스팅 : 개발자가 의도적으로 타입을 변환
    var x = 10;
    var str = x.toString();
  • 암묵적 타입 변환 or 타입 강제 변환 : 자바스크립트 엔진에 의해 암묵적으로 타입 변환
    var x = 10;
    var str = x + ''; // string 10
    암묵적으로 생성된 문자열 '10'은 x 변수에 재할당되지 않음.

Falsy 값

  • false, undefined, null, 0, -0, NaN, '')

문자열 타입으로 변환

  • 이항 더하기 연산자만 해당됨
    1 + '2' // "12"

숫자 타입으로 변환

  • 더하기 연산자 이외는 숫자 타입으로 변환(단항 더하기 연산자 포함)

불리언 타입으로 변환

  • 자바스크립트는 엔진은 불리언 타입이 아닌 값을 Truthy 값(참으로 평가되는 값) 또는 Falsy 값(거짓으로 평가되는 값)으로 구분

명시적 타입 변환

  • ! 부정 논리 연산자를 두 번 사용하는 방법(참 거짓 구분 가능)

단축 평가

  • 논리 연산의 결과를 결정하는 피연산자를 타입 변환하지 않고 그대로 반환
    중요
단축 평가 표현식평가 결과
true ll anythingtrue
false ll anythinganything
true && anythinganything
false && anythingfalse

옵셔널 체이닝 연산자

  • ES11 도입
  • 연산자 ?.
  • 좌항의 피연산자가 null or undefined인 경우 undefined 반환, 그렇지 않으면 우항의 프로퍼티 참조

단축평가 vs 옵셔널 체이닝 연산자

단축평가 예제

var str = '';

// 문자열의 길이(length)를 참조한다. 
var length = str && str.length;

// 문자열의 길이(length)를 참조하지 못한다. 
console.log(length); // ''

옵셔널 체이닝 연산자

var str = '';

// 문자열의 길이(length)를 참조한다. 이때 좌항 피연산자가 false로 평가되는 Falsy 값이라도
// null 또는 undefined가 아니면 우항의 프로퍼티 참조를 이어간다. 
var length = str?.length;
console.log(length); // 0

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

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

0개의 댓글