>웹 프론트엔드 >JS 튜토리얼 >JavaScript에서 \'0 in [1,2]\'가 True를 반환하는 이유는 무엇입니까?

JavaScript에서 \'0 in [1,2]\'가 True를 반환하는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-26 18:20:03691검색

Why Does

JavaScript의 "in" 연산자 이해

JavaScript의 "in" 연산자는 일반적으로 속성이나 키가 존재하는지 확인하는 데 사용됩니다. 개체에서. 그러나 배열에 "0"이 있는지 테스트할 때 특이한 동작이 발생합니다.

문제: 예상치 못한 참 결과

값 "0"이 없는 배열에서 "인 경우 다음 표현식은 true로 평가됩니다.

var x = [1,2];
0 in x;

"0"이 배열에 시각적으로 존재하지 않기 때문에 이 결과는 직관에 어긋나는 것 같습니다.

해결책: 값 비교가 아닌 인덱싱

JavaScript의 "in" 연산자는 특정 값이 있는지 확인하지 않습니다. 대신 속성이나 키가 존재하는지 확인합니다. 배열의 경우 인덱스는 속성으로 간주됩니다.

따라서 위의 예에서 "0"은 배열의 인덱스를 의미합니다. 배열은 0 인덱스이므로 인덱스 "0"이 유효하고 존재하므로 실제 결과가 됩니다.

직관적인 예

이 개념을 더 자세히 설명하려면 다음을 따르세요.

var x = [1,2];
1 in x; // true (index 1 exists)
2 in x; // false (index 2 does not exist)

동작 요약

JavaScript의 "in" 연산자는 배열을 포함한 객체의 속성이나 키가 있는지 확인하는 데 주로 사용됩니다. 배열에 사용되는 경우 해당 인덱스에 저장된 특정 값이 아닌 유효한 인덱스가 있는지 확인합니다.

위 내용은 JavaScript에서 \'0 in [1,2]\'가 True를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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