티스토리 뷰
반응형
단일 느낌표(!) - Logical NOT
하나의 느낌표 연산자는 논리 부정(Not) 연산자라고 한다. 오른쪽에 붙은 피연산자의 값을 역전시켜 boolean 타입으로 반환한다. 실무에서는 조건문에서 많이 사용된다.
if (!Array.length) console.log("빈 배열");
if (!data) console.log("데이터 없음");
이중 느낌표(!!) - Double NOT
이중 느낌표는 단일 느낌표와 같이 피연산자를 boolean 타입으로 값을 반환한다. 오른쪽에 붙은 피연산자가 true/false로 확실하게 정해지지 않은 경우 확실한 true/false 값을 가지도록 하는 게 목적이다. true/false 성격만 가지고 있던 값을 명확하게 true/false로 반환해 준다. (truthy/falsy -> true/false)
기본적으로 boolean 타입이 아닌 값들도 true/false 성격을 가지고 있다. if 조건문에서 확인해 볼 수 있다.
if (true) { /* 실행 */ }
if (false) { /* 실행되지 않음 */ }
if (1) { /* 실행 */ }
if (0) { /* 실행되지 않음 */ }
if (-1) { /* 실행 */ }
if ("true") { /* 실행 */ }
if ("false") { /* 실행 */ }
if ("1") { /* 실행 */ }
if ("0") { /* 실행 */ }
if ("-1") { /* 실행 */ }
if ("") { /* 실행되지 않음 */ }
if (null) { /* 실행되지 않음 */ }
if (undefined) { /* 실행되지 않음 */ }
if ([]) { /* 실행 */ }
if ({}) { /* 실행 */ }
if ([[]]) { /* 실행 */ }
if ([0]) { /* 실행 */ }
if ([1]) { /* 실행 */ }
if (NaN) { /* 실행되지 않음 */ }
이중 느낌표 연산자의 사용
아래 코드는 리액트에서 input을 사용할 때 삼항 연산자를 통해 disabled의 true와 false를 정하는 경우이다.
<input disabled={(email === '' || status === 'REMOVE') ? true : false} />
위 코드는 아래와 같이 변환할 수 있다.
<input disabled={!!(email === '' || status === 'REMOVE')} />
email이 빈 값이거나 status가 'REMOVE'일 때에는 무조건 true를 반환하게 된다.
참고
반응형
'JavaScript' 카테고리의 다른 글
[Vanilla JavaScript] Redux 사용 예제 (0) | 2024.02.02 |
---|---|
AJAX 대신 XMLHttpRequest 사용해서 파일 다운로드 기능 구현하기 (0) | 2023.03.31 |
[JavaScript] 타입 검사를 주의해야 하는 이유 (typeof, instanceof) (0) | 2022.08.15 |
[JavaScript] 문자열 처리 메서드 정리 (0) | 2022.04.23 |
[JavaScript] 배열 요소 추가/삭제/추출 관련 메서드 정리 (0) | 2022.04.22 |