본문 바로가기

Today I Learned

모던 자바스크립트 Deep Dive 9장 타입 변환과 단축 평가

🔑 키워드 정리

  • 명시적 타입 변환/타입 캐스팅 : 개발자의 의도에 따라 타입을 변화하는 것
  • 암묵적 타입 변환/타입 강제 변환 : 개발자의 의도와 상관없이 자바스크립트 엔진에 의해서 타입이 자동적으로 변환되는 것
  • Truthy 값 : 불리언 타입이 아닌 값 중에서 참으로 평가되는 값
  • Falsy 값 : 불리언 타입이 아닌 값 중에서 거짓으로 평가되는 값
  • 단축 평가 : 표현식을 평가하는 도중에 평가 결과가 확정된 경우 나머지 평가 과정을 생략하는 것
  • ?. : 옵셔널 체이닝 연산자
  • ?? : null 병합 연산자

🗒 내용 정리

  • 원시 값은 변경 불가능하다. 타입 변환은 기존 원시 값을 이용해서 다른 타입의 새로운 원시 값을 생성하는 것이다.
  • 템플릿 리터럴의 표현식 삽입은 평가 결과를 문자열 타입으로 암묵적으로 변환한다.
[] + '' // ""
[10, 20] + '' // "10,20"

 

  • 숫자타입으로의 빈 문자열, 빈 배열, null, false는 0으로, true 는 1로 변환된다.
  • Falsy 값들. 이 값들 이외의 값은 모두 Truthy 값이다.
false
undefined
null
0, -0
NaN
''(빈 문자열)
  • 불리언 타입으로 변환하는 방법에는 부정 논리 연산자(!)를 두 번 사용하는 방법이 있다.
!!'x'; // true
!!''; // false

 

  • 논리합 또는 논리곱 연산자 표현식의 평가 결과는 불리언 값이 아닐 수도 있다. 언제나 2개의 피연산자 중 어느 한쪽으로 평가된다. 이들은 모두 좌항에서 우항으로 평가된다. 다음 표현식에서 좌항부터 평가를 진행하면 'Cat' 결과가 true 이고, true && 'Dog' 된다. 그렇기 때문에 반환 값은 'Dog' 된다. 문자열을 반환하기 때문에 조건식에 해당 표현식을 넣을 수도 있는 것이다.
'Cat' && 'Dog' // "Dog"