“!!” 연산자는 값을 boolean으로 형변환하는 데 사용됩니다. 이를 “not not” 연산자라고도 합니다. 이 연산자는 값을 true 또는 false로 간단히 변환하여 반환합니다.
inline ad
예를 들어, JavaScript에서 다음과 같은 값을 boolean으로 형변환 할 수 있습니다.
!!0 // false !!1 // true !!"" // false !!"hello" // true !!null // false !!undefined // false !!NaN // false !![] // true !!{} // true
첫 번째 “!” 연산자는 값을 논리적으로 부정하고, 두 번째 “!” 연산자는 부정된 값을 다시 부정하여 boolean 값을 반환합니다. 따라서 위의 코드에서 0, “”, null, undefined, NaN 값은 false로 변환되고, 모든 객체와 빈 배열은 true로 변환됩니다.
이 연산자는 일반적으로 값이 존재하는지 여부를 확인하거나, 변수 또는 매개 변수가 null 또는 undefined인지 여부를 확인할 때 사용됩니다. 예를 들어, 다음과 같이 값이 존재하는지 확인할 수 있습니다.
let myValue = ""; if (!!myValue) { console.log("myValue has a value"); } else { console.log("myValue is empty"); }
이 코드는 myValue가 값이 있으면 “myValue has a value”를 출력하고, 그렇지 않으면 “myValue is empty”를 출력합니다.
아래 코드를 리펙토링해보았습니다. if else 문 없이 !! 연산자로 코드를 심플하게 작성할 수 있습니다.
if (value) { this.$emit('changeState', true) } else { this.$emit('changeState', false) } this.$emit('changeState', !!value)