다른 타입으로 변환할 수 있는 것
JS 엔진은 표현식을 에러 없이 평가하기 위해서 피연산자의 값을 암묵적 타입 변환하여 사용한다.
const x = 10
const y = x + ''
=> y = string
undefined + ''
= > "undefined"
1 - '1' => 0
+ ''
=> 0
+ '0'
=> 0
+"string"
=> NaN
''
, 0
,null
=> false
!NaN
, !undefined
, !''
, !0
=> true
개발자의 의도에 따라 명시적으로 타입을 변경한다.
표준 빌트인 생성자 함수 (String,Number,Boolean) 을 이용
함수로 변경
a.toString()
=> stringparseInt(a)
=> number+
로 숫자 타입 변경하기
+false
=> 0*
로 숫자 타입 변경하기
false * 1
=> 0!!
로 불리언 타입으로 변환하기
!!''
=> false논리 연산자를 이용해서 간편하게 작성할 수 있다.
if ('Cat' and 'Dog') return 'Dog'
=>'Cat'&&'Dog'
논리곱 연산자는 두개의 피연산자가 모두 true 로 평가될 때, true를 반환한다.
이 때, 논리곱 연산자는 논리 연산의 결과를 결정하는 두 번째 피연산자 를 반환한다.
true && 'a'
=> 'a'
false && 'a'
=> false
이 때 유용합니다.
객체에서 값이 있는지 확인하고, 참조할 떄
const a = elem && elem.value
두개의 피연산자 중 하나만 true 로 평가되어도 true 를 반환한다.
논리합 연산자는 논리 연산의 결과를 결정한 첫번째 피연산자를 반환한다.
true || 'a'
=> true
false || 'a'
=> 'a'
이 때 유용합니다.
함수 매개변수에 기본값을 설정할 때
const a = elem || 'Default'
? 의 좌항의 피연산자가 null 이나 undefined 일 경우 undefined 를 반환하고,
그렇지 않으면 우항의 프로퍼티 참조를 이어나간다.
const elem = null
const value = elem?.value
? 가 없으면 에러
value => undefined
좌항의 피연산자가 null 혹은 undefined 일 경우 , 우항의 피연산자를 반환하고, 아니면 좌항을 반환한다.
||
를 이용할 경우 0 이나 '' 일 경우에도 false 가 되는 경우를 막기 위해 사용하면 좋다.