JavaScript의 For-In 루프 및 객체 속성 순서
"for...in" 루프를 사용하여 객체의 속성을 반복하는 경우 , 순회 순서가 원래 선언 순서와 일치하는지 궁금해하는 것이 당연합니다.
John에 따르면 Resig, 주요 브라우저의 과거 JavaScript 구현에서는 속성 정의 순서대로 이 루프를 실행했습니다. 그러나 Chrome에서는 첫 번째 숫자 속성보다 먼저 숫자가 아닌 속성 이름을 순서대로 가져오는 예외가 있었습니다.
현재 이 동작은 브라우저마다 다릅니다. 숫자가 아닌 속성을 계속 섞는 Chrome 및 Opera를 제외하고 최신 브라우저는 정의 순서를 준수합니다. 이는 "for...in" 루프와 "Object.keys" 메서드 모두에 적용됩니다.
다음 예는 다음을 보여줍니다.
var obj = { "first": "first", "2": "2", "34": "34", "1": "1", "second": "second" }; for (var i in obj) { console.log(i); }
Chrome 및 Opera의 출력:
"1" "2" "34" "first" "second"
다른 브라우저에서 출력:
"first" "second" "1" "2" "34"
이러한 가변성에도 불구하고 브라우저 구현은 변경될 수 있으며 순서 보존에 의존하는 것은 위험할 수 있다는 점에 유의해야 합니다.
따라서 속성의 순서가 애플리케이션에서 중요한 경우 예측 가능한 결과를 제공하므로 배열을 사용하는 것이 현명합니다. 안정적인 주문 메커니즘을 제공합니다.
위 내용은 JavaScript의 'for...in' 루프 속성 순서는 브라우저 전체에서 일관됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!