Double Exclamation Operator
느낌표두개연산자 또는 Double NOT operator라고 불리우는 이 연산자는 오른쪽에 있는 값을 boolean 즉 논리적 값으로 변환해줍니다. 모든 javascript의 값에는 연관된 boolean true 또는 false 값이 있습니다. 따라서 값을 논리값으로 변환하려면 !!를 사용하여 변환 할 수 있습니다.
Double Exclamation Usage
일반적으로 javascript에서 false로 간주되는 값이 있습니다. null, NaN, undefined 등이 있는데 이 값에 !!를 사용하게 되면 false로 반환합니다.
1 | console.log(!!null); // false |
javascript에서 숫자 0은 false를 의미합니다. 0 이외의 숫자는 true입니다.
1 | console.log(!!0); // false |
javascript에서 빈 문자열은 false를 의미합니다. 따라서 ""는 false입니다.
1 | console.log(!!""); // false |
javascript에서 객체 또는 배열은 true입니다. 따라서 빈배열을 확인하려면 .length를 이용하여 확인해야합니다. 하지만 빈객체는 다른 방법으로 확인해야합니다. 자세한 확인방법은 여기를 참고해주시기 바랍니다.
1 | console.log(!!{}); // true |
이거만 기억하면 될 것 같다.

!!는 boolean으로 바꿔준다!