프로그래머스 코딩테스트 중에 비슷한 메서드의 작동원리와 쓰임새가 궁금하여 정리해보았다. 문자열안에 포함된 특정 문자를 찾고자 할 때, 위 세 종류의 메서드를 사용할 수 있다. 그러나 각각의 반환값과 쓰임새가 달라 올바르게 사용하기 위해 정리를 해보려 한다.
includes
includes는 문자열 중 특정 문자열이 포함되어 있는지를 확인할 때 사용한다. 반환값이 boolean이기 때문에 true, false로 값이 반환된다. 특정 문자열이 포함되어 있으면 true, 포함되어 있지 않으면 false이다. 대소문자를 구분한다.
let str = "jaylenyu"
str.includes("yu") // true
str.includes("Apple") // false
indexOf
indexOf는 주어진 문자열이 해당 문자열에서 처음으로 나타나는 index를 반환한다. index는 number로 반환되므로 3, 7 등으로 반환된다. 만약 해당 문자열이 포함되어 있지 않으면 -1을 반환한다. 역시 대소문자를 구분한다.
let str = "jaylenyu"
str.indexOf("yu") // 6
str.indexOf("Apple") // -1
search
search는 정규표현식을 사용하여 해당 문자열 내에서 패턴을 검색한다. indexOf의 경우 인수로 정규표현식을 사용할 수 없다. search에서는 정규표현식을 인수로 사용하여 해당 문자열에서 검색이 가능하다. indexOf보다 정규식표현 사용으로 더 유연한 검색이 가능하다. search메서드는 대소문자를 무시하면서 검색이 가능하다.
let str = "jaylenyu"
str.search(/yu/) // 6
str.search(/YU/i) // 6 i를 사용하여 대소문자 구문을 없앤다
str.search(/Apple/) // -1
includes, indexOf, search 메서드는 앞으로 JSON형태의 데이터를 가공하여 사용하거나 string 등 요소를 필터링할 때 자주 사용할 수 있을 것 같다. 대소문자를 구분하거나 return 하는 값에 따라서 사용성이 달라지기 때문에 조건과 사용방법을 잘 익혀두자 !
'TIL' 카테고리의 다른 글
[JS] let | var | const (0) | 2023.07.09 |
---|---|
[JS] e.preventDefault() & e.stopPropagation() (0) | 2023.07.08 |
[JS] API & fetch (0) | 2023.07.01 |
[JS] async & await (0) | 2023.06.30 |
[JS] Promise (0) | 2023.06.26 |