js_javascript 스킬 중 for in 문 사용법에 대한 설명

WBOY
풀어 주다: 2016-05-16 16:02:35
원래의
1523명이 탐색했습니다.

코드 복사 코드는 다음과 같습니다.

for(객체의 변수)
성명

변수는 변수, 배열의 요소 또는 객체의 속성을 선언하는 var 문입니다
루프 본문 내에서 객체의 속성 이름이 변수에 문자열로 할당됩니다.

참고: 개체의 일부 속성은 동일한 방식으로 읽기 전용, 영구(삭제 불가능) 또는 열거 불가능으로 표시됩니다. 이러한 속성은 for/in 루프를 사용하여 열거할 수 없습니다. 모든 사용자 정의 속성은 열거 가능하지만 모든 내부 메서드를 포함한 많은 내부 속성은 열거 가능하지 않습니다. 또한 객체는 다른 객체로부터 속성을 상속할 수 있으며, 상속된 사용자 정의 속성은 for/in 루프를 사용하여 열거할 수 있습니다.

for(var i=0;i

예:

코드 복사 코드는 다음과 같습니다.

var a = ["a","b","c"];
for(var el in a){
경고(a[el]);
}

이는 a의 모든 요소를 ​​열거하는 것입니다. 물론 위의 예를 사용할 수도 있습니다
코드 복사 코드는 다음과 같습니다.

for(var i=0,len=a.length;i 경고(a[i]);
}

이 방법은 루프에 나열하는 데 사용되지만 때로는 이 방법이 작동하지 않을 수도 있습니다.
예:
코드 복사 코드는 다음과 같습니다.

var a = {"첫 번째":1,"두 번째":2,"세 번째":3};

현재로서는 for in을 사용하여 목록을 모두 소진할 수 있습니다.

in에 대해 객체를 철저하게 사용할 수 있는지 여부는 propertyIsEnumerable 속성으로 판단할 수 있습니다.

object.propertyIsEnumerable(propname)이 for/in 루프를 통해 속성을 볼 수 있는지 여부
propname은 객체 속성
의 이름을 포함하는 문자열입니다. 객체에 propname이라는 상속되지 않은 속성이 있고 해당 속성이 열거 가능한 경우(즉, for/in 루프를 사용하여 열거할 수 있음) true

를 반환합니다.

설명:

for/in 문을 사용하여 객체의 "열거 가능한" 속성을 순회할 수 있지만, 객체의 모든 속성이 열거 가능한 것은 아닙니다. JavaScript 코드를 통해 객체에 추가된 속성은 열거 가능하며, 객체의 내부 사전 정의된 속성( 메서드 등)은 일반적으로 열거할 수 없습니다.

propertyIsEnumerable() 메서드는 프로토타입 체인을 확인하지 않습니다. 즉, 객체의 로컬 속성에만 적용되며 상속된 속성의 열거 가능성을 감지할 수 없습니다.

코드 복사 코드는 다음과 같습니다.

var o=new Object();
o.x=3.14;
o.propertyIsEnumerable("x");//true
o.propertyIsEnumerable("y");//false 속성이 없습니다
o.propertyIsEnumerable("toString");//false 상속됨
Object.prototype.propertyIsEnumerable("toString");//false 숫자 없음
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿