JavaScript의 역설 풀기: 비교에서는 "0"이 거짓이지만 If 문에서는 거짓인 이유
JavaScript에서 기본 요소 " 0"은 개발자에게 퍼즐을 제시합니다. "=="와 같은 논리 연산자는 "0"을 false로 간주하지만 "0"은 "if" 조건에서 참으로 동작합니다.
비교 역설
코드 아래는 비교 역설을 보여줍니다.
"0" == false // true
false == "0" // true
이 시나리오에서 JavaScript는 "truthy" 및 "falsy" 값을 기반으로 "0"을 false로 강제 변환합니다. "0", "NaN", "null" 및 정의되지 않음과 같은 값은 거짓으로 간주되고 다른 값은 참으로 간주됩니다.
If 문 예외
그러나 상황은 "if" 문에 "0"이 사용되면 혼란스러워집니다:
if ("0") console.log("ha") // ha
강제에도 불구하고 비교에서 false로 설정하면 "if" 조건에서 "0"이 true로 평가됩니다. 이는 JavaScript의 "if" 문이 "0"을 포함하여 비어 있지 않은 모든 문자열을 참으로 취급하기 때문입니다.
진실성 테이블
이 동작을 이해하려면 JavaScript 진실성 테이블을 참조할 수 있습니다. 비교(==) 및 "if" 문(참) 조건에서 참/거짓 상태를 기준으로 값을 분류합니다.
값 | 비교 | If 문 |
---|---|---|
참/참 | 참 | 참 |
거짓/거짓 | 거짓 | 거짓 |
"0"(거짓) | 거짓 | true |
결론
JavaScript에서 "0"의 역설은 비교(= =) 및 "if" 문(진실). 이는 예상치 못한 결과를 피하기 위해 개발자가 알아야 할 미묘하지만 중요한 차이점입니다. 가장 좋은 방법은 정확한 평가를 보장하기 위해 비교 중에 엄격한 동등성(===)을 사용하는 것이 좋습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3