자바스크립트에서 다양한 문자열 비교 방법 5가지를 소개합니다.
예를 들어,
- 동등 연산자로 문자열이 동등한지 비교하거나, 문자열의 크기 비교할 수 있습니다.
- 또는 문자열에 어떤 문자열이 포함되어있는지 확인하거나,
- 어떤 문자열로 시작하거나 끝나는지 확인할 수도 있습니다.
예제와 함께 자세히 알아보겠습니다.
1. 동등 연산자(==, ===)로 문자열 비교
두개의 문자열이 같은지 다른지 확인할 때, 동등 연산자(==, ===)를 사용할 수 있습니다. 아래 예제와 같이 두개 문자열이 같으면 true를 리턴하고 다르면 false를 리턴합니다.
const str1 = 'hello';
const str2 = 'hello';
const str3 = 'world';
console.log(str1 === str2); // true
console.log(str1 === str3); // false
console.log(str2 === str3); // false
console.log(str2 !== str3); // true
console.log(str1 == str2); // true
console.log(str1 == str3); // false
console.log(str2 == str3); // false
console.log(str2 != str3); // true
1.1 동등 연산자, ==와 ===의 차이점
위의 예제에서 ==와 ===의 결과가 같아서 차이점을 알 수 없었습니다.
==
는 Equality를 비교하고, ===
는 Identity를 비교하는데요. 아래와 같은 차이점이 있습니다.
- ==는 비교하는 객체의 타입이 달라도, 형변환하여 값이 같으면 true를 리턴
- ===는 객체 타입이 같고 값이 같을 때 true 리턴
아래 예제를 보시면 차이점을 확인할 수 있습니다. string과 Number 타입의 객체를 비교하는데 ==
는 true, ===
는 false를 리턴하고 있습니다.
==
의 경우, Number 타입을 string 타입으로 변환하여 비교하면 두 객체의 값이 같기 때문에 true가 리턴되었습니다.
하지만, ===
의 경우, 두 객체의 타입이 다르기 때문에 false가 리턴되었습니다.
const str = '123';
const num = 123;
console.log(str === num); // false
console.log(str == num); // true
엄격하게 비교를 하려면 ===
를 사용하여 비교하는 것이 좋습니다.
developer.mozilla.org에 다양한 예제가 있으니 이 문서도 확인해보시면 좋을 것 같습니다.
2. 문자열 크기 비교 (>, < 연산자)
문자열의 크기 비교는 다른 언어와 동일하게 ASCII 값을 비교하여 크기를 결정합니다.
- 알파벳 순서가 앞에 있을 수록 더 크기가 작으며, 문자열의 앞에서 뒤의 순서대로 비교를 합니다.
- 문자열이 길어도 같은 위치(Index)의 문자의 알파벳 순서가 작다면 문자열의 크기가 작다고 계산됩니다.
- 문자열 길이가 짧아서 같은 Index에 문자가 없으면 더 작은 문자열로 계산됩니다.
const str1 = 'abcd';
const str2 = 'ab';
const str3 = 'abd';
const str4 = 'aba';
const str5 = 'bbcd';
console.log(str1 > str2); // true
console.log(str1 < str3); // true
console.log(str1 > str4); // true
console.log(str1 < str5); // true
3. 문자열에 어떤 문자열이 포함되어있는지 확인 : String.indexOf()
String.indexOf()를 이용하여 문자열에 어떤 문자열이 포함되어있는지 확인할 수 있습니다.
- 아래와 같이 인자로 전달된 문자열이 문자열 안에 존재한다면 그 문자열이 위치한 Index를 리턴합니다.
- 존재하지 않는다면, -1을 리턴합니다. 따라서, -1이 리턴되는지 여부로 문자열이 포함되어있는지 확인할 수 있습니다.
const str = 'Hello, World, Javascript';
if (str.indexOf('Hello') != -1) {
console.log("str contains 'Hello'");
} else {
console.log("str doesn't contain 'Hello'");
}
Output:
str contains 'Hello'
4. 문자열에 어떤 문자열이 포함되어있는지 확인 : String.includes()
String.includes()를 이용하여 문자열에 어떤 문자열이 포함되어있는지 확인할 수 있습니다.
아래와 같이 인자로 전달된 문자열이 문자열 안에 존재한다면 true가 리턴되며, 존재하지 않는다면 false를 리턴합니다.
const str = 'Hello, World, Javascript';
if (str.includes('Hello')) {
console.log("str contains 'Hello'");
} else {
console.log("str doesn't contain 'Hello'");
}
Output:
str contains 'Hello'
5. 문자열이 어떤 문자열로 시작하거나 끝나는지 확인 : String.startsWith(), String.endsWith()
startsWith()
는 문자열이 인자로 전달된 문자열로 시작할 때 true를 리턴합니다. 그리고 endsWith()
도 비슷하게, 문자열이 인자로 전달된 문자열로 끝날 때 true를 리턴합니다.
const str = 'Hello, World, Javascript';
console.log(str.startsWith('Hello')); // true
console.log(str.startsWith('World')); // false
console.log(str.endsWith('Javascript')); // true
console.log(str.startsWith('World')); // false
Related Posts
- Javascript - 현재 날짜/시간을 항상 한국 기준으로 가져오기
- Javascript - 문자열 사이에 문자 넣기
- Javascript - 버튼 활성화/비활성화 시키는 방법
- Javascript - 버튼 이름 변경하기
- Javascript - div 안의 내용 가져오기, 변경, 추가, 삭제
- Javascript - <ol>, <ul>에 <li> 동적 추가, 삭제
- Javascript - div 생성, 추가, 삭제 방법
- Javascript - 테이블 행(tr) 숨기기, 보이기
- Javascript - div에 링크 거는 방법
- Javascript - 자식 요소(element) 개수 확인
- Javascript - 요소(element) 복사, 붙여넣기
- Javascript - div에 클릭 이벤트(onclick) 설정 방법
- Javascript - 체크박스 선택/해제 시, 텍스트박스 활성화/비활성화
- Javascript - input 숫자만 입력받도록 설정
- Javascript - 자식 노드 모두 제거
- Javascript - 체크박스 선택, 해제 방법
- Javascript - input text 값 가져오기
- JavaScript - 문자열을 배열(Array)로 변환
- JavaScript - 특정 문자열의 포함 여부 확인 (includes, 정규표현식)
- JavaScript - 문자열 비교 방법, 5가지
- JavaScript - 문자열 바꾸기(replace, 정규식 치환)
- JavaScript - 배열 전체 출력 (for, forEach, for in, for of)
- JavaScript - 한번만 실행되는 함수 (once: true)
- JavaScript - 선택된 checkbox 값 가져오기
- JavaScript - element(버튼, div) 보이기 숨기기
- JavaScript - 숫자를 배열로 변경하는 방법
- JavaScript - div, 태그 안의 내용 가져오기
- JavaScript - 부모, 형제, 자식 element 찾기
- JavaScript - 클래스 이름으로 element 찾는 방법
- JavaScript Array find() 함수
- JavaScript Array splice() 함수
- JavaScript의 contains() 함수
- JavaScript sort() 함수, 예제 소개
- JavaScript - Set 생성 및 초기화
- JavaScript Set add() 함수