>  기사  >  웹 프론트엔드  >  JavaScript에서 빈 배열이 참과 거짓을 모두 평가하는 이유는 무엇입니까?

JavaScript에서 빈 배열이 참과 거짓을 모두 평가하는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-08 02:10:01316검색

Why Do Empty Arrays Evaluate to Both Truthy and False in JavaScript?

빈 배열의 참성과 거짓 여부에 대한 혼동

JavaScript에서는 빈 배열이 참으로 간주됩니다. 그러나 기본 값 false와 비교하면 false로 평가됩니다. 이 당황스러운 동작은 항등 연산자에 의해 수행되는 암시적 유형 변환으로 인해 발생할 수 있습니다.

제공된 예제 코드를 자세히 살펴보겠습니다.

첫 번째 if 문은 arr이 다음과 같은지 확인합니다. 현재(객체로서). arr은 배열 객체이므로 존재하고 조건은 true로 평가됩니다.

그러나 두 번째 if 문은 arr의 값(toString() 호출 후)을 기본 값 false와 비교합니다. JavaScript에서 []는 toString()으로 호출될 때 빈 문자열("")로 변환되는데, 이는 거짓 값(null, 정의되지 않음, 0 등과 함께)으로 간주됩니다. 따라서 조건도 false로 평가됩니다.

세 번째 if 문은 AND 연산자(&&)를 사용하여 이전 두 조건을 결합합니다. arr(이제 빈 문자열) 및 arr == false(true & false)는 모두 false로 평가되므로 전체 조건은 false로 평가됩니다.

결론적으로 빈 배열은 고려된다는 점에서 진실입니다. 객체 또는 조건부 컨텍스트에서 사용될 때 true로 제시되고 평가됩니다. 그러나 기본 값 false와 비교하면 동등 연산에 의해 수행되는 암시적 유형 변환으로 인해 false로 평가됩니다.

위 내용은 JavaScript에서 빈 배열이 참과 거짓을 모두 평가하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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