명시적 타입변환

 

var x = 10;

var str = x.toString();

console.log(typeof str, str);
 

암묵적 타입변환

var x = 10;
var str = x + '20'; //문자열로 변환
var num = x * '20';  //숫자형으로 변환

console.log(typeof str, str);
console.log(typeof num, num);
 
숫자타입 변환 
 
1 - '1' // 0
 
1 * '10' // 10
1 / 'one' // NaN
 
 
피연산자만 문자열로 바뀌는 것이 아니라 템플릿 리터럴의 삽입 역시 문맥에 맞게
암문적 타입 변환이 수행된다. 
 
var str =`1 + 1 = ${1 + 1}`; // "1 + 1 = 2"
 
 
'1' > 0 // true
 
비교 연산자의 역할은 불리언 값을 만드는 것으로 피연산자는 코드 문맥상 숫자타입이어야 한다.
비교를 위해 피연사자는 숫자타입으로 암묵적 타입 변환시킨다.
 
true를 반환하는 Truthy 값
 
'0' // 빈 문자열이 아니면 문자열은 참이다.
{}
[]
 
false를 반환하는 Falsy 값
 
false
undefined
null
0, -0
NaN
''(빈 문자열)
 
명시적 타입 변환
 
문자열로 변환 시키기
 
String();
().toString();
 
숫자 타입으로 변환
 
Number();
parseInt(); //문자열만 가능
parseFloat();
 
+'0';   //단항 산술 연산자 이용하는 방법
+'-1';
+'10.53';
+true;
+false

불리언 타입으로 변환

 

Boolean();

Boolean(NaN); false

Boolean({}); true

Boolean([]); true

 

 

단축평가

 

논리연산자를 사용한 단축평가

 

'Cat' && 'Dog' // -> Dog

 

빈 문자열만 아니면 문자열은 true로 둘다 true다. 논리곱 연산자는 좌항, 우항을 둘다 평가해야 값을 평가할 수 있으므로

먼저 'Cat'이 true임을 확인하고 우항인 'Dog'를 확인하고 그대로 'Dog'를 반환한다.

 

'Cat' || 'Dog' // -> Cat

 

논리합 연산자는 좌항만 ture만 나와도 우항을 평가할 필요가 없다.

이때 논리합 연산자는 문자열 'Cat'을 그대로 반환한다.

 

논리곱, 논리합 연산자는 논리연산의 결과를 결정하는 피연산자를 타입 변환하지 않고 그대로 반환한다.

이를 단축평가라고 한다. 단축평가는 평가결과가 확정된 경우 나머지 평가를 생략하는 것을 말한다.

 

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

false || 'Dog' // 'Dog'

 

논리연산자 단축평가는 객체 프로퍼티 null, undefined 검사 역할을 할 수도 있다.

 

var elem = null;

var value = elem && elem.value; // null

 

옵셔널 체이닝 연산자

 

옵셔널 체이닝 연산자인 ?.은 좌항의 피연산자가 undefined 또는 null이면 undefined를 반환하고 그 외에는 우항의 참조값을 반환한다.  var value = num?.value;

 

null 병합 연산자 

 

null 병합 연산자 ??는 피연산자가 null, undefine이면 우항을 반환하고 아니면 좌항을 반환한다.

주의점은 undefined, null을 제외한 Falsy값이라면 좌항을 반환한다는 것이다.

 

 

'진행중 > 모던 JS - 1회독 공부기록' 카테고리의 다른 글

공부기록 - 원시값과 객체의 비교  (0) 2022.08.20
공부기록 - 객체  (0) 2022.08.20
공부기록 - 제어문  (0) 2022.08.20
공부기록 - 데이터 타입  (0) 2022.08.19
공부기록 - 표현식과 문  (0) 2022.08.18

+ Recent posts