2017-03-05 1 views
-3

첫 번째 문자열이 "합격/불합격"이고 IndexOf에 전달 된 문자열이 "수치 사양"이므로 false를 반환 할 것으로 예상합니다.두 개의 고유 한 문자열을 비교할 때 indexOf의 결과가 true가됩니다.

이 기능의 작동 방식을 이해하지 못했습니까? 문자열 A가 문자열 B에 포함되어 있는지 확인한 것 같습니다.

unexpected behavior

+1

indexOf() 메서드는 문자열에 지정된 값이 처음 나타나는 위치를 반환합니다. 검색 할 값이 결코 발생하지 않으면이 메서드는 -1을 반환합니다. – Smit

+0

그것은 당신이 묘사 한 것과 정확히 똑같지 만, -1에 대한 반환 값을 검사하지는 않습니다 만, 그것은 진실입니다. -1입니다. 또한 코드는 텍스트입니다. 그것으로 취급하십시오. 이미지를 검색하거나 복사 할 수 없습니다. –

+1

잭 -1은 진실이다. 실제로 0이 아닌 값은 진실 (긍정 또는 부정), 0은 위선이다. :) – niceman

답변

1

당신은 아마 일치 인덱스 대신 위/아래 부울을 반환 "".contains를 사용하는 의미 js의 -1은 "truthy"이므로 indexOf() 사용법은 조건부로 일한다.

+1

contains가 포함되어 있지 않고'String.prototype.includes()'를 의미하는 것 같습니다. – Gerrit0

+0

@ Gerrit0 : 어리석은 오염 된 stackoverflow "rightofthedot" "전역". (그것은 콘솔에서 여기에서 달렸습니다.) 나는 항상 그 메소드 이름들을 섞어서 고쳤습니다. 다른 웹 메소드와 다른 이름을 짓는 것에 대해 어리 석다. 그리고 기억이 안나기 때문에 나를 바보로 만든다. 감사합니다;) – dandavis

+0

감사합니다, 작품 취급! –

1

같이 IndexOf() -1이 반환 값이 발생하지 검색 할 경우 string.This 방법에서 지정된 값의 첫번째 발생의 위치를 ​​반환한다.

var str = "Hello world, welcome to the universe."; 
var n = str.indexOf("welcome"); //output 13 

Similiaryly : 예를 들어

"abc".includes("b"); // == true; 
"abc".includes("x"); // == false; 

:

var str = "Hello world"; 
    var n = str.indexOf("welcome"); //output -1 
+1

답안에서 누락 된 부분은 -1입니다. 진실한 값입니다. – niceman

관련 문제