배열 안에 ‘라’와 ‘다’가 2개씩 있는 것에 주목해 주세요. indexOf()는 주어진 값이 있는지 앞에서부터 찾고, lastIndexOf()는 뒤에서부터 찾습니다. 따라서 ‘다’가 인덱스 2, 4에 위치하지만, indexOf()는 앞에서부터 찾으므로 결과로 2가 나옵니다. ‘라’는 인덱스 0, 3에 위치하지만, lastIndexOf()는 뒤에서부터 찾으므로 결과는 3이 나옵니다. result3도 눈여겨봐야 합니다. 배열 안에 존재하지 않는 값을 찾습니다. 이럴 경우 결과는 -1이 나옵니다. 같은 값으로 includes()를 사용했다면 결과로 false가 나왔을 겁니다.
배열에서 indexOf()와 includes()로 요소를 찾을 때 주의할 점이 있습니다. 배열에서 indexOf()나 includes()로 값을 찾을 때는 값의 자료형도 일치해야 합니다. 다음 예제를 보면 식의 결과가 전부 true입니다.
['2', '3', '4', '5'].indexOf('5') === 3;
< true
['2', '3', '4', '5'].indexOf(5) === -1; // 요소의 자료형까지 같아야 함
< true
['2', '3', '4', '5'].includes(5) === false; // 요소의 자료형까지 같아야 함
< true