"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 비교에서는 "0"이 거짓으로 작동하지만 JavaScript의 "if" 문에서는 True로 작동하는 이유는 무엇입니까?

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

2024-11-07에 게시됨
검색:311

Why Does

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