-1 znamená "nenalezena žádná shoda".
Důvod, proč vrací -1 místo "false", je ten, že jehla na začátku řetězce by byla na pozici 0, což je v Javascriptu ekvivalentní false. Takže vrácení -1 zajišťuje, že víte, že ve skutečnosti neexistuje shoda.
-1 znamená, že nebyla nalezena žádná shoda. "dobré" v této větě není. Toto je zdokumentované chování.
indexOf()
metoda vrací první index, na kterém lze daný prvek v poli nalézt, neboli -1
pokud není přítomen.
Protože pole jsou založena na 0, vrácení 0 by znamenalo, že počínaje od prvního znaku bylo shodné; 1, druhý znak a tak dále. To znamená, že cokoli 0 a vyšší by bylo pravdivou nebo „nalezenou“ odpovědí. Aby vše zůstalo v kategorii integer, -1 znamená, že nebyla nalezena žádná shoda.