JavaScript 배열의 indexOf 메소드
문자열 유형의 사용법
예를 들어 잘 알려진 문자열 사용법을 검토하세요.
let str = 'orange'; str.indexOf('o'); //0 str.indexOf('n'); //3 str.indexOf('c'); //-1
여기서 0과 3은 각각 문자열에서 o와 n의 위치입니다. 시작 인덱스는 0입니다. 그리고 -1은 일치하는 항목이 없음을 의미합니다.
왜 -1이 null이 아니거나 정의되지 않았는지 묻는 사람이 있었습니다. 규칙을 만든 사람에게 물어보세요. 그는 무력해 보였습니다.
여기서는 모두 흥미로운 내용을 볼 수 없습니다. 걱정하지 마세요. 여기에 또 다른 예가 있습니다
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 변수가 변경되면 어떻게 해야 할까요?
두 번째 작성 방법이 가장 많이 사용되지만, 세 번째 작성 방법보다 조금 더 깁니다. ㅎㅎ 사실은 다 가능합니다. 3번 유형처럼 코드에 집착하는 분들
배열형 사용
여러분 힘내세요 대장님이 오십니다.
모두가 배열 메소드에 익숙하지만 배열에 indexOf 메소드가 있다는 점을 무시합니다(개인적인 느낌).
연습 없이 그냥 이야기하는 것뿐입니다. 어떤 문제에 직면했고 어떤 점에 주의해야 합니까?
let arr = ['orange', '2016', '2016']; arr.indexOf('orange'); //0 arr.indexOf('o'); //-1 arr.indexOf('2016'); //1 arr.indexOf(2016); //-1
여기서는 4가지 사용 사례만으로 충분합니다. 문제를 설명합니다.
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를 배열의 요소와 비교합니다.
한 눈에 엄격하다는 것이 분명합니다. 여기서는 평등이 사용됩니다(===). 비슷한 판단을 내릴 때 좀 더 주의를 기울여 주시기 바랍니다. 숫자는 문자열로 변환되고 문자열은 숫자로 변환되지 않을 것이라고 생각하는 실수를 저지르지 마십시오.
요약
작은 지식 포인트의 축적은 심도 있는 논의를 위한 주제가 아니기 때문에 여기에서는 indexOf()의 두 번째 매개변수에 대한 설명은 생략하겠습니다. 아니요 알고 계시다면 여기에서 String.prototype.indexOf()를 살펴보신 후 위 배열에 대한 링크와 함께 두 번째 매개변수를 살펴보세요.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











기사는 JavaScript 라이브러리 작성, 게시 및 유지 관리, 계획, 개발, 테스트, 문서 및 홍보 전략에 중점을 둡니다.

이 기사는 브라우저에서 JavaScript 성능을 최적화하기위한 전략에 대해 설명하고 실행 시간을 줄이고 페이지로드 속도에 미치는 영향을 최소화하는 데 중점을 둡니다.

프론트 엔드 개발시 프론트 엔드 열지대 티켓 인쇄를위한 자주 묻는 질문과 솔루션, 티켓 인쇄는 일반적인 요구 사항입니다. 그러나 많은 개발자들이 구현하고 있습니다 ...

기술 및 산업 요구에 따라 Python 및 JavaScript 개발자에 대한 절대 급여는 없습니다. 1. 파이썬은 데이터 과학 및 기계 학습에서 더 많은 비용을 지불 할 수 있습니다. 2. JavaScript는 프론트 엔드 및 풀 스택 개발에 큰 수요가 있으며 급여도 상당합니다. 3. 영향 요인에는 경험, 지리적 위치, 회사 규모 및 특정 기술이 포함됩니다.

이 기사는 브라우저 개발자 도구를 사용하여 효과적인 JavaScript 디버깅, 중단 점 설정, 콘솔 사용 및 성능 분석에 중점을 둡니다.

이 기사는 소스 맵을 사용하여 원래 코드에 다시 매핑하여 미니어링 된 JavaScript를 디버그하는 방법을 설명합니다. 소스 맵 활성화, 브레이크 포인트 설정 및 Chrome Devtools 및 Webpack과 같은 도구 사용에 대해 설명합니다.

동일한 ID로 배열 요소를 JavaScript의 하나의 객체로 병합하는 방법은 무엇입니까? 데이터를 처리 할 때 종종 동일한 ID를 가질 필요가 있습니다 ...

JavaScript는 현대 웹 개발의 초석이며 주요 기능에는 이벤트 중심 프로그래밍, 동적 컨텐츠 생성 및 비동기 프로그래밍이 포함됩니다. 1) 이벤트 중심 프로그래밍을 사용하면 사용자 작업에 따라 웹 페이지가 동적으로 변경 될 수 있습니다. 2) 동적 컨텐츠 생성을 사용하면 조건에 따라 페이지 컨텐츠를 조정할 수 있습니다. 3) 비동기 프로그래밍은 사용자 인터페이스가 차단되지 않도록합니다. JavaScript는 웹 상호 작용, 단일 페이지 응용 프로그램 및 서버 측 개발에 널리 사용되며 사용자 경험 및 크로스 플랫폼 개발의 유연성을 크게 향상시킵니다.
