P粉8940084902023-08-21 15:38:37
예(항상 삽입 순서대로 진행되는 것은 아닙니다).
대부분의 브라우저는 다음 순서로 개체 속성을 반복합니다.
일부 구형 브라우저는 카테고리 1과 카테고리 2를 결합하여 삽입 순서에 따라 모든 키를 반복합니다. 키가 정수로 해석될 가능성이 있는 경우 특정 반복 순서에 의존하지 않는 것이 가장 좋습니다.
현재 언어 사양(ES2015 기준) 삽입 순서는 유지되지만 양의 정수(예: "7" 또는 "99")로 해석되는 키의 동작은 브라우저마다 다릅니다. 예를 들어 Chrome/V8은 키가 숫자로 해석될 때 삽입 순서를 따르지 않습니다.
이전 언어 사양(ES2015 이전): 반복 순서는 기술적으로 정의되지 않았지만 모든 주요 브라우저는 ES2015 동작을 준수합니다.
ES2015의 동작은 언어 사양이 기존 동작에 의해 주도되는 좋은 예이지 그 반대가 아니라는 점에 유의하세요. 이러한 이전 버전과의 호환성 사고 방식을 더 자세히 살펴보려면 Chrome의 반복 순서 동작 설계에 대한 자세한 소개인 http://code.google.com/p/v8/issues/detail?id=164를 참조하세요. 의사결정 Chrome 버그 보고. 이 버그 보고서의 (다소 주관적인) 의견 중 하나에 따르면:
P粉5746952152023-08-21 10:41:13
객체의 반복 순서는 ES2015부터 특정 규칙을 따르지만 항상 삽입 순서를 따르지는 않습니다. 간단히 말해서, 반복 순서는 문자열 키의 삽입 순서와 숫자형 키의 오름차순의 조합입니다.
으아악이것은 배열이나 Map
개체Map
对象可以更好地实现这一点。 Map
与Object
를 사용하여 더 잘 달성할 수 있습니다. Map
은 Object
와 몇 가지 유사점이 있으며 는 예외 없이 삽입 순서대로 키 반복 을 보장합니다.
ES2015 이전에는 객체의 속성 순서가 전혀 보장되지 않았습니다. ECMAScript 3rd Edition(pdf)의 객체 정의 :