[javascript] 문자열 비교하기

자바스크립트에서 문자열을 비교하는 방법에 대해 알아보겠습니다.

1. 문자열 비교 연산자

자바스크립트에서는 동등 비교 연산자 == 와 일치 비교 연산자 === 를 사용하여 문자열을 비교할 수 있습니다.

동등 비교 연산자 (==)

const str1 = "Hello";
const str2 = "World";

console.log(str1 == str2);   // false
console.log(str1 == "Hello"); // true

동등 비교 연산자 == 는 두 개의 피연산자가 같은 값을 가지고 있는지만 비교하며, 타입까지 비교하지 않습니다. 따라서 피연산자의 타입이 다를 경우 암묵적으로 타입 변환이 이루어 집니다.

일치 비교 연산자 (===)

const str1 = "Hello";
const str2 = "Hello";

console.log(str1 === str2);   // true
console.log(str1 === "hello"); // false

일치 비교 연산자 === 는 두 개의 피연산자가 값 뿐만 아니라 타입까지 정확하게 일치하는지 비교합니다. 따라서 타입 변환이 이루어지지 않고 엄격한 비교가 이루어집니다.

2. 문자열 대소 비교

문자열을 대소 비교할 때는 <, >, <=, >= 와 같은 비교 연산자를 사용합니다.

const str1 = "apple";
const str2 = "banana";

console.log(str1 < str2);   // true
console.log(str1 > str2);   // false
console.log(str1 <= str2);  // true
console.log(str1 >= str2);  // false

자바스크립트에서 문자열을 대소 비교할 때, 사전순으로 비교됩니다. 즉, 문자열의 첫 글자부터 비교하여 사전순으로 작거나 큰지를 판단합니다.

3. 문자열 메서드를 이용한 비교

자바스크립트의 문자열 객체는 여러 가지 메서드를 제공하고 있어 비교할 수 있습니다. 가장 일반적으로 사용되는 메서드는 localeCompare() 입니다.

const str1 = "hello";
const str2 = "world";

console.log(str1.localeCompare(str2));   // -1
console.log(str2.localeCompare(str1));   // 1
console.log(str1.localeCompare("hello")); // 0

localeCompare() 메서드는 인자로 전달된 문자열과 비교하여, 대소 관계를 반환합니다. 반환 값은 -1, 0, 1 중 하나입니다. -1은 문자열이 작은 것을 나타내고, 0은 같은 것을 나타내며, 1은 문자열이 큰 것을 나타냅니다.

참고 자료