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 anything | true |
false ll anything | anything |
true && anything | anything |
false && anything | false |
옵셔널 체이닝 연산자
- ES11 도입
- 연산자 ?.
- 좌항의 피연산자가 null or undefined인 경우 undefined 반환, 그렇지 않으면 우항의 프로퍼티 참조
단축평가 vs 옵셔널 체이닝 연산자
단축평가 예제
var str = '';
var length = str && str.length;
console.log(length);
옵셔널 체이닝 연산자
var str = '';
var length = str?.length;
console.log(length);
출처 : 모던 자바스크립트 Deep Dive(P.93 ~ P.123)
저자 : 이웅모 지음, 위키북스