최근에 코드에 작은 문제가 발생했는데 이를 작은 예로 단순화하여 보여드리겠습니다.
주의를 기울이면 결국 보상을 받게 될 것입니다. 기초가 탄탄한 어린이 신발은 어레이형 사용으로 바로 점프할 수 있습니다.
indexOf라고 하면 누구나 익숙할 것입니다. 특히 문자열에 하위 문자열이 포함되어 있는지 판단할 때 자주 사용됩니다(정규 표현식에 익숙하지 않은 학생들에게 유용한 도구).
잘 알려진 문자열 사용법을 검토하세요. 예를 들어
let str = 'orange'; str.indexOf('o'); //0 str.indexOf('n'); //3 str.indexOf('c'); //-1
여기서 0과 3은 각각 Location 문자열에 나타나는 o와 n입니다. 시작 인덱스는 0입니다. 그리고 -1은 일치하는 항목이 없음을 의미합니다.
왜 -1이 null이 아니거나 정의되지 않았는지 묻는 사람이 있었습니다. 규칙을 만든 사람에게 물어보세요! 무기력한 표정.
여기서는 모두 흥미로운 내용을 볼 수 없습니다. 걱정하지 마세요. 여기에 또 다른 예가 있습니다
let numStr = '2016'; numStr.indexOf('2'); //0 numStr.indexOf(2); //0
여기에서 볼 수 있는 작은 점은 indexOf
가 간단한 유형 변환을 수행하고 숫자를 문자열 그런 다음 실행합니다. '2'
유형은 암시적 변환을 수행하므로 number
메소드가 있는지 궁금할 것입니다! 아니요, 위의 예시 indexOf
let num = 2016; num.indexOf(2); //Uncaught TypeError: num.indexOf is not a function에서는
유형에 number
메서드를 사용해야 합니까? 그런 다음 문자열로 변환한 다음 위의 예에서 indexOf
//二逼青年的写法 num = '2016'; num.indexOf(2); //0 //普通青年的写法 num.toString().indexOf(2); //0 //文艺青年的写法 ('' + num).indexOf(2); //0를 작성합니다. 첫 번째 작성 방법은 간단하고 직접적이며 알려진 더 짧은 숫자에 대해서는 불가능하지 않습니다. 하지만 num 변수가 다른 데이터에 대해 변경되면 어떻게 해야 할까요? 두 번째 쓰기 방식이 가장 많이 사용되지만, 세 번째 쓰기 방식보다 조금 더 깁니다. ㅎㅎ 사실은 다 가능합니다. 3번 유형처럼 코드에 집착하는 분들 배열형 사용여러분 힘내세요 대장님이 오십니다. 배열 방식은 다들 익히 알고 계시지만
배열 방식은 간과하셨네요(개인적인 느낌). indexOf
let arr = ['orange', '2016', '2016']; arr.indexOf('orange'); //0 arr.indexOf('o'); //-1 arr.indexOf('2016'); //1 arr.indexOf(2016); //-1여기에서는 예제를 자세히 설명하지 않았습니다. 네 가지 사용 사례만으로 문제를 설명할 수 있습니다.
indexOf()는 엄격한 동등성(=== 또는 삼중 등호 연산자에서 사용하는 것과 동일한 방법)을 사용하여 searchElement를 배열 요소와 비교합니다.Clear at 여기서는 엄밀한 같음(
)을 사용합니다. 비슷한 판단을 내릴 때 좀 더 주의를 기울여 주시기 바랍니다. 숫자는 문자열로 변환되고 문자열은 숫자로 변환되지 않을 것이라고 생각하는 실수를 저지르지 마십시오. ===