2011-12-21 4 views

답변

18

-1 "일치하는 항목이 없습니다"를 의미한다.

"false"대신 -1을 반환하는 이유는 문자열의 시작 부분에있는 바늘이 0 위치에 있으며 이는 자바 스크립트에서 false와 같습니다. 따라서 -1을 반환하면 실제로 일치하는 항목이 없음을 알 수 있습니다.

+0

내가 찾고있는 것이 그 것이다. 감사. –

8

-1 일치하는 항목이없는 것을 의미합니다. "좋은"그 문장에 없습니다. 이것은 documentedbehaviour입니다.

indexOf() 방법은 존재하지 않을 경우, 특정 소자가 어레이에서 발견 또는 -1 될 수있는 최초의 인덱스를 반환한다.

7

배열은 0 기반이므로 0을 반환하면 첫 번째 문자가 일치했음을 의미합니다. 1, 두 번째 문자 등. 이것은 0 이상의 값이 참이거나 "발견 된"응답 일 것임을 의미합니다. 정수 카테고리에서 모든 것을 유지하기 위해 -1은 일치하는 것을 찾지 못했음을 나타냅니다.

1

일치 항목이 없을 때 indexOf가 -1을 반환하는 또 다른 이유가 있습니다. 코드 아래 고려 :

은 ~가 (-1) = 0 그래서 같이 IndexOf이 복귀한다는 -1 사실이 경우 쓰기가 쉽게
if (~str.indexOf(pattern)){ 
    console.log('found') 
}else{ 
    console.log('not found') 
} 

때문에 ... 다른 사용 ~.

관련 문제