변수가 condition
이라고 가정 해 봅시다. 나는 엄격한 boolean
값으로 변수에 저장할 싶은 경우에, 나는 같은 것을 할 :if에 변수 사용과 이중 느낌표 사이에 어떤 차이가 있습니까?
var logicalCondition = !!condition;
첫 번째 느낌표가 condition
을 부정하고 boolean
로 값을 변환합니다. 두 번째 느낌표는 부정 된 엄격한 부울 값을 다시 무효화합니다. condition
이 truey 인 경우 결과는 true
이고 condition
이 위식 인 경우 false
입니다. If
조건은 truey를 true
및 falsy를 false
으로 변환하는 것으로 알려져 있습니다. 우리는 다음과 같은 두 덩어리
//first
if (condition) {
//do something
}
//second
if (!!condition) {
//do something
}
에서 살펴한다면, 우리가 관찰 할 수있는 첫 번째 차이는 우리가 if
에 손 전에 두 번째 경우에 우리는 엄격한 boolean
값으로 값을 변환이다. 두 번째 차이점이 있습니까, 아니면이 전환이 불필요한가요?
차이가 없습니다. '!!'는 부울로 암시 적으로 변환되지만'if (condition)'도 true/false 값을 취하고 어느 쪽이라도 동일하게 수행합니다 – vlaz
불필요합니다. 'if' 조건 테스트의 동작은'!!'의 결과와 정확히 같습니다. – Pointy
린터가 덜 불평 할 수도 있습니까? 자동 유형 감지와 유사하며 부울이 아닙니다. – YOU