조건식에는 주로 boolean 타입의 true/false를 넣었는데 다른 타입은 어떻게 비교하는지 알게되어 정리한다.
변수의 값을 초기화하거나 삼항연산자를 사용할 때도 유용하게 쓸 수 있을 것 같다.
- Truthy (참 값)
- true (boolean)
- 빈 문자열을 제외한 문자열
- 0이 아닌 숫자
- 객체, 배열
- Falsy (거짓 값):
- false (boolean)
- 0
- 빈 문자열 ( '' , "" )
- null
- undefined
- NaN (Not-a-Number = 숫자가 아님)
- 응용
const testObj = { a: 'abc' };
const testArr = [];
const testFn = () => {
//문자열
let abc = testObj?.a ? testObj?.a : ''; //삼항연산자로 a 프로퍼티 값을 비교 및 변수 초기화. 문자열 'abc'가 할당
if (abc) console.log('success text !!', abc); //if문으로 문자열 'abc' 값 비교.
const txt = '';
if (txt) console.log('no print'); //공백 비교.
abc = testObj?.c || ''; //옵셔널 체이닝 연산자로 없는 프로퍼티에 접근해서 논리연산자로 undefinede 비교 후 공백 할당
if (abc) console.log('no print');
//숫자
let num = 0;
if (num) console.log('no print');
num++;
if (num) console.log('success num !!', num);
//객체, 배열
if (testObj) console.log('success obj : ', testObj);
if (testArr) console.log('success arr : ', testArr); //비어있어도 truthy!
//null
const nu = null;
if (!nu) console.log('null: ', nu);
//undefined
const unde = testObj?.b;
if (!unde) console.log('undefined : ', typeof unde);
};
'JavaScript & TypeScript' 카테고리의 다른 글
[typescript/javascript] 절대경로 import 설정과 auto import extention (1) | 2024.07.05 |
---|---|
[JavaScript] HTML 요소 접근 / 값 가져오기 (0) | 2022.05.09 |