네, not not(!!) 연산자는 not(!) 연산자의 반대 과정이라고 할 수 있습니다. 어떤 값이 true일 때 단일 !(not)을 적용하면 false가 되고, 여기에 한 번 더 !(not)을 적용한 !!(not not)은 다시 원래 값인 true를 반환하게 됩니다.
즉, !!(not not) 연산자는 값을 명시적으로 불리언(Boolean) 타입으로 변환하는 데 자주 사용되며, 원래 값의 진위 여부를 그대로 유지합니다.
not(!) 연산자란?
not 연산자는 값의 논리적 부정을 수행합니다. true를 false로, false를 true로 바꿉니다.
var flag=true; console.log(!flag); // false
not not(!!) 연산자란?
not not 연산자는 not을 두 번 적용하기 때문에 원래 값의 불리언 표현을 그대로 반환합니다.
var flag=true; console.log(!!flag); // true
예제 코드
다음은 두 연산자의 차이를 확인할 수 있는 전체 코드입니다.
var flag = true;
console.log("단일 !(not) 연산 결과:")
console.log(!flag);
console.log("이중 !!(not not) 연산 결과:")
console.log(!!flag)실행 방법
위 프로그램을 실행하려면 Node.js 환경에서 아래 명령어를 사용합니다.
node fileName.js
여기서는 파일 이름을 demo247.js로 저장했다고 가정합니다.
실행 결과
콘솔에 다음과 같은 출력 결과가 나타납니다.
PS C:\Users\Amit\javascript-code> node demo247.js 단일 !(not) 연산 결과: false 이중 !!(not not) 연산 결과: true
정리
- !(not): 값의 논리적 부정을 반환합니다. true → false, false → true
- !!(not not): not을 두 번 적용하여 원래 값의 불리언 값을 그대로 반환합니다.
따라서 !!(not not) 연산자는 not 연산자를 이중으로 사용한 것으로, 결과적으로 원래 값의 참·거짓 여부를 불리언 타입으로 명확하게 변환해주는 역할을 합니다. 이는 조건문에서 값의 존재 여부를 빠르게 확인하고 싶을 때 매우 유용하게 활용됩니다.