>  기사  >  웹 프론트엔드  >  `slice()`는 여전히 NodeList를 배열로 변환하는 가장 빠른 방법입니까?

`slice()`는 여전히 NodeList를 배열로 변환하는 가장 빠른 방법입니까?

DDD
DDD원래의
2024-10-27 22:55:30828검색

 Is `slice()` Still The Fastest Way to Convert a NodeList to an Array?

JavaScript NodeList를 배열로 변환: 속도 고려 사항

NodeList를 배열로 변환하는 주제에 대한 이전 토론에서는 Slice()를 사용한다고 주장했습니다. 방법이 가장 효율적인 접근 방식입니다. 그러나 최근 벤치마크에서는 놀라운 결과가 나타났습니다.

벤치마크 관찰

Chromium 6에서 수행된 실험에서 간단한 방법을 사용하여 NodeList에서 배열을 생성하는 것으로 나타났습니다. for 루프는 Slice() 메서드보다 3배 이상 성능이 뛰어납니다. 이 결과는 Slice()의 우수성에 관한 이전 주장과 상충됩니다.

가능한 설명

이러한 불일치의 이유는 브라우저별 최적화 또는 JavaScript의 차이에서 비롯될 수 있습니다. 엔진 구현. 이 시나리오에서는 Chromium 엔진이 for 루프를 보다 효율적으로 처리할 수 있습니다.

ES6를 사용한 대체 솔루션

ES6의 출현으로 새롭고 간결한 솔루션 사용 가능: Array.from() 함수. 이 함수는 NodeList를 포함하여 모든 반복 가능한 객체에서 배열을 빠르고 쉽게 생성할 수 있습니다.

// nl is a NodeList
let myArray = Array.from(nl)

결론

for 루프 접근 방식은 특정 경우 놀라운 속도를 제공할 수 있습니다. 브라우저에서 Array.from() 함수는 NodeList를 배열로 변환하기 위한 최신 크로스 플랫폼 솔루션을 제공합니다.

위 내용은 `slice()`는 여전히 NodeList를 배열로 변환하는 가장 빠른 방법입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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