티스토리 뷰

반응형

암묵적 타입 변환

개발자의 의도와는 상관없이 표현식을 평가하는 도중에 자바스크립트 엔진에 의해 암묵적으로 타입이 자동으로 변환

 

var x = 10;

// 암묵적 타입 변환
var str = x + ''; 

console.log(typeof str, str); // string 10

자바스크립트 엔진에 의해 암묵적으로 일어나기 때문에 코드에 타입 변환 의지가 드러나지 않는다.

∴ 타입 변환에 대해 예측 가능해야 한다.

 

 


명시적 타입 변환

개발자의 의도에 의해 타입을 바꾸는 방법이다.

  1. 표준 빌트인 생성자 함수(String, Number, Boolean)를 new 연산자 없이 호출
  2. 빌트인 메서드 사용
  3. 암묵적 타입 변환 사용

 

표준 빌트인 생성자 함수(String, Number, Boolean)를 new 연산자 없이 호출

Number('0'); // 0
Number('-1'); // -1

Number(false); // 0

 

빌트인 메서드 사용

(1).toString(); // "1"
(true).toStirng(); // "true"

 

암묵적 타입 변환 사용

'10' + 2 // '102'

5 * '10' // 50

 

 

 

단축 평가

표현식을 평가하는 도중에 평가 결과가 확정된 경우 나머지 평가 과정을 생략하는 것을 말한다.

다음 세 가지 방식이 있다.

  1. 논리 연산자
  2. 옵셔널 체이닝 연산자
  3. null 병합 연산자

 

(1) 논리 연산자

'Cat' && 'Dog' // 'Dog'
'Cat' || 'Dog' // 'Cat'

&& 연산자는 두 개 모두 True로 평가되어야 한다.

Cat은 True니 뒤에 Dog도 평가해야 한다.

&& 연산자 식에서 평과 결과가 확정 나는 부분'Dog'이다.

 

그렇지만 || 연산자 식에서 평과 결과가 확정 나는 부분'Cat'이다.

||은 하나만 True여도 True를 반환하기 때문이다.

 

 

 

(2) 옵셔널 체이닝 연산자

var elem = null;

var value = elem?.value;
console.log(value) //undefined

옵셔널 체이닝 연산자 ?.는 좌항의 피연산자가 null or undefined인 경우 undefined 반환

아니면 우항의 프로퍼티 참조

 

위 옵셔널 체이닝 연산자에서는 좌항이 null이므로 undefined 반환

 

 

(3) null 병합 연산자

var foo = 0;
console.log(foo ?? 10); // 0

var foo = 0;
console.log(foo || 10); // 10

null 병합 연산자 ??는 좌항의 피연산자가 null or undefined인 경우 우항의 피연산자 반환

아니면 좌항의 피연산자 반환

 

null 병합 연산자 ||는 좌항의 피연산자가 Falsy인 경우 우항의 피연산자 반환

아니면 null or undefined가 아니라면 좌항의 피연산자 그대로 반환

 

 

 

하트 누르면 위 내용 전부 기억하게 됩니다.

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함