JavaScript의 역설 풀기: 비교에서는 "0"이 거짓이지만 If 문에서는 거짓인 이유
JavaScript에서 기본 형식 " 0"은 개발자에게 퍼즐을 제시합니다. "=="와 같은 논리 연산자는 "0"을 false로 간주하지만 "0"은 "if" 조건에서 참으로 동작합니다.
비교 역설
코드 아래는 비교 역설을 보여줍니다.
<code class="js">"0" == false // true false == "0" // true</code>
이 시나리오에서 JavaScript는 "truthy" 및 "falsy" 값을 기반으로 "0"을 false로 강제 변환합니다. "0", "NaN", "null" 및 정의되지 않음과 같은 값은 거짓으로 간주되고 다른 값은 참으로 간주됩니다.
If 문 이상
그러나 상황은 "if" 문에 "0"이 사용되면 혼란스러워집니다.
<code class="js">if ("0") console.log("ha") // ha</code>
비교에서는 강제로 false로 설정되지만 "if" 조건에서는 "0"이 true로 평가됩니다. 이는 JavaScript의 "if" 문이 "0"을 포함하여 비어 있지 않은 모든 문자열을 참으로 취급하기 때문입니다.
진실성 테이블
이 동작을 이해하려면 JavaScript 진실성 테이블을 참조할 수 있습니다. 비교(==) 및 "if" 문(참) 조건의 참/거짓 상태를 기준으로 값을 분류합니다.
Value | Comparison | If Statement |
---|---|---|
True/Truthy | true | true |
False/Falsy | false | false |
"0" (Falsy) | false | true |
결론
역설 JavaScript에서 "0"의 의미는 비교(==) 및 "if" 문(truthy)의 진실성에 대한 다양한 해석에서 발생합니다. 이는 예상치 못한 결과를 피하기 위해 개발자가 알아야 할 미묘하지만 중요한 차이점입니다. 가장 좋은 방법은 정확한 평가를 보장하기 위해 비교 중에 엄격한 동등성(===)을 사용하는 것이 좋습니다.
위 내용은 비교에서는 '0'이 거짓으로 작동하지만 JavaScript의 'if' 문에서는 True로 작동하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!