빈 배열의 참성과 거짓 여부에 대한 혼동
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!