>웹 프론트엔드 >JS 튜토리얼 >비교에서는 '0'이 거짓으로 작동하지만 JavaScript의 'if' 문에서는 True로 작동하는 이유는 무엇입니까?

비교에서는 '0'이 거짓으로 작동하지만 JavaScript의 'if' 문에서는 True로 작동하는 이유는 무엇입니까?

DDD
DDD원래의
2024-11-04 22:08:02464검색

Why Does

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.