논리 연산자 NOT은 느낌표 기호 (!) 를 이용하여 표현할 수 있습니다.
논리 연산자 NOT의 사용방법은 간단합니다. 아래처럼 피연산자 앞에 !를 붙이기만 하면 됩니다.
const a = 1;
console.log(!a) // false
NOT 연산자를 1개만 붙였을 경우엔, 피연산자를 boolean 타입으로 변환하고, 그것의 역을 반환하는 역할을 수행합니다.
truthy 값을 false로, falsy 값을 true로 변환하는 역할입니다.
그렇다면, NOT 연산자를 2개 붙이는 것은 어떤 의미일까요?
다른 타입의 데이터를 boolean 타입으로 명시적 타입 변환 (사용자가 직접 데이터의 타입을 변환) 을 수행한다는 의미입니다.
다시 말해, truthy 값을 true로, falsy 값을 false로 변환합니다.
아래 객체는 truthy 한 값입니다. type은 당연히 object 입니다.
const obj = { a : 1 , b : "bat"}; // truthy 값
console.log(typeof obj); // object
이 object에 !!를 붙이면 true라는 boolean 값이 됩니다.
const obj = { a : 1 , b : "bat"}; // truthy 값
console.log(typeof obj); // object
// truthy (object) -> true (boolean)
const objToBoolean = !!obj;
console.log(typeof objToBoolean); // boolean
console.log(objToBoolean); // true
truthy or falsy한 값을 true or false라는 boolean값으로 바로 바꿔서 어떤 변수에 대입할 때 이용할 수 있습니다.
const test = !!flag;
위 방법과 아래 두 방법은 같은 결과를 내지만, 위 방법이 보기에 더 편합니다.
let test;
if(flag){
test = true;
} else {
test = false;
}
const test = flag ? true : false;
참고한 글
https://ifuwanna.tistory.com/278
https://ko.javascript.info/logical-operators#ref-4247
'Typescript' 카테고리의 다른 글
boolean 배열에서 truthy 값이 하나라도 있는지 확인하는 법 (using reduce) (0) | 2022.11.06 |
---|---|
Map 자료구조를 사용하는 방법 (0) | 2022.11.05 |
코드 컨벤션과 특정 라인에 대한 eslint 규칙 끄기 (0) | 2022.10.19 |
[Error 해결] No overload matches this call. (0) | 2022.10.07 |
DTO와 Entity, 이 둘은 무엇이고 어떤 차이점이 있을까? (0) | 2022.10.02 |