[JS] 09. 타입 변환과 단축 평가

heyhey·2023년 6월 21일
0
post-thumbnail

09. 타입 변환과 단축 평가

9.1 타입 변환?

다른 타입으로 변환할 수 있는 것

9.2 암묵적 타입 변환 (타입 강제 변환)

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

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

개발자의 의도에 따라 명시적으로 타입을 변경한다.

  • 표준 빌트인 생성자 함수 (String,Number,Boolean) 을 이용

  • 함수로 변경

    • a.toString() => string
    • parseInt(a) => number
  • + 로 숫자 타입 변경하기

    • +false => 0
  • * 로 숫자 타입 변경하기

    • false * 1 => 0
  • !! 로 불리언 타입으로 변환하기

    • !!'' => false

9.4 단축 평가

논리 연산자를 이용해서 간편하게 작성할 수 있다.

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 병항 연산자 (??)

좌항의 피연산자가 null 혹은 undefined 일 경우 , 우항의 피연산자를 반환하고, 아니면 좌항을 반환한다.

|| 를 이용할 경우 0 이나 '' 일 경우에도 false 가 되는 경우를 막기 위해 사용하면 좋다.

profile
주경야독

0개의 댓글