JS에서 배열을 가로 지르는 두 가지 방법이 있습니다
코드 사본은 다음과 같습니다.
var array = [ 'a']
// 루프 표준
for (var i = 1; i <array.length; i ++) {
경고 (배열 [i])
}
// foreach loop
for (var i in array) {
경고 (배열 [i])
}
정상적인 상황에서는 배열을 가로 지르는 두 가지 방법이 동일합니다. 우선, 둘 사이의 첫 번째 차이점에 대해 이야기합시다
루프 표준의 i는 숫자 유형이며, 배열의 첨자를 나타내지 만, Foreach 루프의 i는 JS의 모든 것이 객체이기 때문에 배열의 키를 나타냅니다. Alert (Typeof I)를 사용해보십시오. 이 차이는 작은 문제입니다. 이제 다음 코드를 추가하면 위의 실행 결과가 다릅니다.
코드 사본은 다음과 같습니다.
// 확장 JS 기본 배열
Array.prototype.test = function ()
}
위의 코드가 실행되는 내용을 확인하십시오. 우리는 루프의 표준이 여전히 배열에서 실제 루핑이라는 것을 발견했지만 현재로서는 Foreach 루프가 방금 작성된 테스트 방법에서 인쇄됩니다. 이것은 Foreach Traversing Array의 가장 큰 차이점입니다. 우리가 프로젝트에서 Traverse Array를 위해 Foreach를 사용하는 경우, 누군가가 실수로 기본 배열 클래스의 JS를 확장하거나 기본 배열을 확장하기 위해 외부 JS 프레임 워크를 소개하는 날이 있다고 가정합니다. 그런 다음 질문이 발생합니다.
제안 할 두 가지 점이 더 있습니다
1. 배열을 가로 지르기 위해 사용하지 말고 통일에 루프 변수 어레이에 표준을 사용하지 마십시오 (우리가 소개 한 JS가 프로토 타입을 사용하여 기본 어레이를 확장할지 여부를 보장 할 수 없습니다).
2. 기본 클래스의 JS를 확장하려면 프로토 타입을 사용하지 마십시오.