머리말
indexOf는 문자열에 하위 문자열이 포함되어 있는지 판단할 때 특히 자주 사용되는 도구입니다. 이 기사에서는 최근에 발생한 문제를 기반으로 indexOf 메소드에 대해 예제를 사용하여 설명합니다. 이 글은 소소한 지식 포인트를 모아놓은 글이므로 깊이 있는 논의를 위한 주제는 아닙니다. 따라서 여기에서는 indexOf()의 두 번째 매개변수에 대한 설명은 생략하겠습니다.
문자열 유형의 사용법
잘 알려진 문자열 사용법을 검토하세요. 예를 들어
let str = 'orange'; str.indexOf('o'); //0 str.indexOf('n'); //3 str.indexOf('c'); //-1
여기서 0과 3은 각각 o이고 문자열에서 n이 나타나는 위치. 시작 인덱스는 0입니다. 그리고 -1은 일치하는 항목이 없음을 의미합니다.
누군가가 왜 null이나 정의되지 않은 대신 -1인지 물은 적이 있습니다. 규칙을 만든 사람에게 물어보세요! 무기력한 표정.
모두 여기에 흥미로운 내용이 표시되지 않습니다. 걱정하지 마세요. 여기에 또 다른 예가 있습니다
let numStr = '2016'; numStr.indexOf('2'); //0 numStr.indexOf(2); //0
여기서 작은 점은 indexOf가 간단한 유형 변환을 수행한다는 것입니다. 문자열 '2'에 숫자를 추가한 다음 실행합니다.
숫자형 사용법
암시적 변환을 수행하는 숫자형에 indexOf 메소드가 있는지 궁금하실텐데요! 아니요, 위의 예
let num = 2016; num.indexOf(2); //Uncaught TypeError: num.indexOf is not a function
에서는 숫자 유형에 indexOf 메소드를 사용해야 하나요? 그런 다음 문자열로 변환한 다음 위의 예에서
//二逼青年的写法 num = '2016'; num.indexOf(2); //0 //普通青年的写法 num.toString().indexOf(2); //0 //文艺青年的写法 ('' + num).indexOf(2); //0
라고 작성합니다. 첫 번째 작성 방법은 간단하고 간단하며 알려진 더 짧은 숫자에는 불가능하지 않습니다. 하지만 num 변수가 다른 데이터에 대해 변경되면 어떻게 해야 합니까? ❌
두 번째 글쓰기 방법이 가장 많이 사용되는데, 세 번째 글쓰기 방법보다 조금 더 깁니다. ㅎㅎ 사실 코드에 집착하는 사람들은 세 번째 유형을 선호합니다 ✅
Array 유형을 사용하면
여러분 힘내세요 대장님이 오십니다.
모두가 배열 메소드에 익숙하지만 배열에 indexOf 메소드가 있다는 점을 무시합니다(개인적인 느낌).
말만 하고 실천은 안 하고, 어떤 문제에 직면했고, 어떤 점에 주의해야 할까요?
let arr = ['orange', '2016', '2016']; arr.indexOf('orange'); //0 arr.indexOf('o'); //-1 arr.indexOf('2016'); //1 arr.indexOf(2016); //-1
여기에서는 예제를 자세히 설명하지 않았습니다. 네 가지 사용 사례로 문제를 설명할 수 있습니다.
arr.indexOf('orange')는 'orange'가 배열의 0번째 요소이므로 0을 출력하고, 인덱스가 일치하여 반환됩니다.
arr.indexOf('o')는 -1을 출력합니다. 왜냐하면 이 메소드는 요소별로 indexOf 매칭을 다시 수행하지 않기 때문입니다.
arr.indexOf('2016')는 1을 출력합니다. 이 메서드는 일치하는 모든 첨자를 반환하는 대신 첫 번째 배열 요소의 아래 테이블을 반환할 때까지 처음부터 일치하기 때문입니다.
arr.indexOf(2016) 출력 -1 참고: 여기서는 암시적 유형 변환이 수행되지 않습니다.
이제 구덩이가 발견되었으니 그 바닥까지 파헤쳐 보는 편이 나을 것 같습니다. MDN 공식 웹사이트를 방문하여 알아보세요. 이 주제에 관심이 있는 친구들은 Array.prototype.indexOf()로 직접 이동할 수 있습니다.
더 알고 싶은 분들을 위한 공식 설명은 다음과 같습니다.
indexOf()는 엄격한 동등성(=== 또는 삼중 등호 연산자에서 사용하는 것과 동일한 방법)을 사용하여 searchElement를 배열의 요소와 비교합니다.
한 번에 명확합니다. 여기서 사용된 내용은 (===)와 완전히 동일합니다. 비슷한 판단을 내릴 때 좀 더 주의를 기울여 주시기 바랍니다. 숫자는 문자열로 변환되고 문자열은 숫자로 변환되지 않을 것이라고 생각하는 실수를 저지르지 마십시오.
요약
이 글의 내용이 모두의 공부나 업무에 조금이나마 도움이 되었으면 좋겠습니다. 소통하라는 메시지.
JS 배열의 indexOf 메소드에 대한 단순한 이야기와 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!