> 웹 프론트엔드 > JS 튜토리얼 > 빈 배열이 JavaScript에서는 True를 반환하지만 동등 비교에서는 False를 반환하는 이유는 무엇입니까?

빈 배열이 JavaScript에서는 True를 반환하지만 동등 비교에서는 False를 반환하는 이유는 무엇입니까?

Linda Hamilton
풀어 주다: 2024-11-08 06:06:02
원래의
1063명이 탐색했습니다.

Why Does an Empty Array Return True in JavaScript but False in an Equality Comparison?

JavaScript의 빈 배열의 역설 이해

JavaScript의 빈 배열은 true이기도 하고 false이기도 해 개발자 사이에 혼란을 초래할 수 있습니다. . 근본적인 이유를 알아보기 위해 다양한 시나리오를 살펴보겠습니다.

if(arr)가 true를 반환하는 이유는 JavaScript에서 배열이 실제 값으로 간주되기 때문입니다. 이는 배열이 Object 생성자에서 상속되는 객체이고 객체가 일반적으로 조건문 내에서 true로 처리되기 때문입니다.

그러나 같음 연산자 ==를 사용하면 좀 더 미묘한 동작이 나타납니다. if(arr == false)는 빈 배열의 문자열 값이 JavaScript의 6가지 거짓 값 중 하나인 빈 문자열이기 때문에 false를 반환합니다. 이는 항등 연산자가 기본적으로 배열에 대해 "[object Object]"를 반환하는 toString() 메서드를 사용하여 배열을 문자열로 강제 변환하기 때문입니다. 그러나 빈 배열의 경우 toString()은 빈 문자열을 반환합니다.

이 동작을 더 자세히 설명하기 위해 if(arr && arr == false) 문은 논리 AND 연산자( &&)는 왼쪽 피연산자가 참일 때 표현식을 단락시킵니다. 이 경우 arr이 참이므로 표현식의 두 번째 부분은 평가되지 않습니다.

따라서 배열의 참 특성과 동등 비교에 사용되는 강제 값의 뚜렷한 동작으로 인해 명백한 역설이 발생합니다. . JavaScript에서 빈 배열로 작업할 때 혼란을 피하려면 이러한 미묘한 차이를 이해하는 것이 중요합니다.

위 내용은 빈 배열이 JavaScript에서는 True를 반환하지만 동등 비교에서는 False를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿