hrming
[JavaScript] 타입변환 & 단축평가 본문
타입 변환
1. 암묵적 타입 변환
2. 명시적 타입 변환
| 2-1. 문자열 타입 | 2-2. 숫자 타입 | 2-3. 불리언 타입 |
| String( 1 ); ( 1 ).toString(); 1 + ' ' |
Number( '1' ); parseInt( '1' ); parseFloat( '10.53' ); + '0'; '0' * 1 |
Boolean( ' ' ); // false !! 'x'; // true |
3. 단축 평가
| 표현식 | 결과 |
| true || anything | true |
| false || anything | anything |
| true && anything | anything |
| false && anything | false |
| 조건이 참인 if문을 단축 평가 논리곱(&&)연산자를 사용하여 표현할 수 있다. |
조건이 거짓인 if문을 단축 평가 논리합(||)연산자를 사용하여 표현할 수 있다. |
| var decide = true; var answer = ' '; answer = decide && 'yes'; console.log(answer); |
var decide = false; var answer = ' '; answer = decide || 'no'; console.log(answer); |
객체는 키와 값으로 구성된 프로퍼티의 집합이다. 변수의 값이 객체가 아니라 null 또는 undefined인 경우 객체의 프로퍼티를 참조하면 타입에러가 발생하고, 프로그램이 강제 종료됨.
-> 그렇기 때문에 참조할때는 단축평가 논리곱(&&) 연산지 혹은 옵셔널 체이닝 연산자 (?.)를 사용해서 변수의 값이 null 또는 undefined인지 확인 후, 우항의 프로퍼티 참조를 이어감. (null이나 undefined인 경우 그대로 반환하고 종료. 참조 X)
| 객체를 가리키기를 기대하는 변수가 null 또는 undefined가 아닌지 확인하고 프로퍼티를 '참조'할 때 | |
| 1) 단축평가 사용 ( && ) | 2) 옵셔널 체이닝 연산자 사용 ( ?. ) |
| var a= null; var value = a && a.value |
var b = null; var value = b?.value; console.log(value); // undefined |
| 좌항 피연산자가 false값이면 좌항 피연산자를 그대로 반환. false값인 0이나 ''인 경우도 마찬가지이나 ' '은 객체로 평가될 때도 있다. |
좌항의 피연산자가 null 또는 undefined인 경우 undefined를 반환하고 그렇지 않으면 우항의 프로퍼티 참조를 이어간다. |
| 변수에 기본값 설정할때 사용 | |
| 1) 단축평가 사용 ( || ) | 2) null 병합 연산자 사용 ( ?? ) |
| var a = null || 'default value'; console.log(a); // 'default value' |
var b = ' ' ?? 'default value'; console.log(b); // "" |
| 좌항의 피연산자가 false값이면 우항의 피연산자를 반환. false값인 0이나 ''도 기본값으로 유효하다면 예기치 않은 동작이 발생할 수 있음 |
좌항의 피연산자가 false값이라도 null또는 undefined가 아니면 좌항의 피연산자를 그대로 반환 |
참고1: 모던 자바스크립트 Deep Dive (작가: 이웅모)
'JavaScript' 카테고리의 다른 글
| [JavaScript] 객체 및 프로퍼티 (0) | 2022.08.29 |
|---|---|
| [JavaScript] NaN (Not-A-Number) (0) | 2022.08.29 |
| [JavaScript] 변수 선언 (0) | 2022.08.24 |
| [JavaScript] 호이스팅(Hoisting) (0) | 2022.08.21 |
| [JavaScript] 자바스크립트 데이터/타입 비교 ==, === (0) | 2022.08.21 |
Comments