[javascript]!! 연산자 not not 연산자

0
1352
javascript
javascript

“!!” 연산자는 값을 boolean으로 형변환하는 데 사용됩니다. 이를 “not not” 연산자라고도 합니다. 이 연산자는 값을 true 또는 false로 간단히 변환하여 반환합니다.

예를 들어, 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)