in_javascript 기술에 대한 javascript 배열 순회 간의 차이점에 대한 자세한 설명
May 16, 2016 pm 04:29 PMjs에서 배열을 탐색하는 방법에는 두 가지가 있습니다
var 배열=['a']
//표준 for 루프
for(var i=1;i
}
//foreach 루프
for(배열의 var i){
경고(배열[i])
}
일반적인 상황에서 위의 두 가지 배열 순회 방법의 결과는 동일합니다. 먼저 둘 사이의 첫 번째 차이점에 대해 이야기해 보겠습니다.
표준 for 루프의 i는 배열의 첨자를 나타내는 숫자 유형이지만, foreach 루프의 i는 js의 모든 것이 객체이기 때문에 배열의 키가 문자열 유형임을 나타냅니다. 직접 시도해 보세요. Alert(typeof i); 이 차이는 사소한 문제입니다. 이제 다음 코드를 추가하면 위의 실행 결과가 달라집니다.
//확장된 js 네이티브 배열
Array.prototype.test=function()
}
시험해보고 위 코드가 무엇을 하는지 살펴보세요. 우리는 표준 for 루프가 여전히 배열에 대해 실제로 루프를 수행하지만 이때 foreach 루프는 방금 작성한 테스트 메서드를 인쇄한다는 것을 발견했습니다. 이것이 배열을 탐색하기 위한 for와 foreach의 가장 큰 차이점입니다. foreach를 사용하여 프로젝트에서 배열을 탐색하는 경우 어느 날 누군가가 실수로 js의 기본 Array 클래스를 확장하거나 외부 js 프레임워크를 도입하고 기본 클래스도 확장한다고 가정해 보겠습니다. 배열. 그런 다음 문제가 발생합니다.
두 가지 제안
1. for in을 사용하여 배열을 탐색하지 말고 표준 for 루프 변수 배열을 사용하세요(우리가 소개하는 js가 네이티브 배열을 확장하기 위해 프로토타입을 사용할지는 보장할 수 없습니다)
2. js의 기본 클래스를 확장하려면 프로토타입을 사용하지 마세요

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











WebSocket과 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법

WebSocket 및 JavaScript: 실시간 모니터링 시스템 구현을 위한 핵심 기술

WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법

JavaScript 및 WebSocket을 사용하여 실시간 온라인 주문 시스템을 구현하는 방법

간단한 JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법

JavaScript와 WebSocket: 효율적인 실시간 일기예보 시스템 구축
