>  기사  >  웹 프론트엔드  >  js_javascript 스킬 중 for in 문 사용법에 대한 설명

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

WBOY
WBOY원래의
2016-05-16 16:02:351519검색

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

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