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