모던 자바스크립트 Deep Dive - 9장

박상은·2021년 9월 28일
0

요약

1. 타입변환

1.1 명시적타입변환 ( 타입캐스팅 )

개발자의 의도에 맞게 타입을 변환한 것

1.2 묵시적타입변환

개바랒의 의도와 상관없이 표현식을 평가하는 도중에 자바스크립트 엔진에 의해서 타입이 변환되는 것

const x = 10;
x.toString();		// "10" 명시적타입변환
String(x);		// "10" 명시적타입변환
x + "";			// "10" 묵시적타입변환

2. falsy값

자바스크립트에서는 아래의 6가지 값을 제외한 모든 값은 truthy로 평가된다.

  1. false
  2. undefined
  3. null
  4. 0, -0
  5. NaN
  6. ""

3. 단축평가

표현식을 평가하는 도중에 평가결과가 확정되면 나머지 평가를 생략하는 것을 의미
||&&는 피연산자중 하나로 평가된다.

"a" || "b";	// "a" ..."a"만 평가하고 truthy이므로 "a"반환후 종료됨
"a" && "b";	// "b" ..."a"와 "b"모두 평가하고 "b"반환

4. 옵셔널체이닝연산자

좌항피연산자가 null이나 undefined라면 그대로 반환 아니면 우항의 프로퍼티참조를 이어가는 연산자

const person1 = { name: "john" };
const person2 = null;

person1?.name;	// "john"
person2?.name;	// null
person2.name;	// error발생

person1 && person1.name;	// "john"

5. null병합연산자

좌항피연산자가 null이나 undefined라면 우항을 반환하고 아니면 좌항반환
falsy중에서도 nullundefined일 경우에만 사용해야할 때 사용

"" || "default text";	// "default text"

"" ?? "default text";	// ""
null ?? "default text";	// "default text"

마무리

  • 빈배열 ([]), 빈객체 ({})는 truthy
  • 타입변환에 익숙해지고나서 간단하게 변환시키는 방법을 사용하는 것이 좋다고 생각함
10 + "";	// "10"
+"10";		// 10
  • &&는 제일 처음 falsy인 피연산자 반환하고, 없으면 제일 마지막 피연산자 반환
  • ||는 제일 처음 truthy인 피연산자 반환하고, 없으면 제일 마지막 피연산자 반환
"a" && null && "c";	// null => 제일 처음 falsy인 값
// "c"는 평가되지 않음 ( 단축평가 )

"" || null || "a" || false;	// "a" => 제일 처음 truthy인 값

0개의 댓글