자바스크립트에서의 동등 연산자와 일치 연산자 간의 차이

자바스크립트에서는 값들을 비교하기 위해 동등 연산자(==)와 일치 연산자(===)를 제공합니다. 이 두 연산자는 비슷한 역할을 수행하지만, 그들 사이에는 중요한 차이점이 있습니다.

동등 연산자 (==)

동등 연산자는 값들이 서로 다를 경우에도 형 변환을 통해 비교를 시도합니다. 즉, 변수들의 형식에 관계없이 값이 같으면 true를 반환합니다.

console.log(5 == "5"); // true
console.log(true == 1); // true
console.log(null == undefined); // true

동등 연산자는 형 변환까지 수행하기 때문에 일부 예상치 못한 결과를 가져올 수 있습니다. 예를 들어, 0과 false는 값이 다르지만 형 변환 후에는 동등하다고 판단됩니다.

console.log(0 == false); // true

일치 연산자 (===)

일치 연산자는 값뿐만 아니라 변수들의 형식도 비교합니다. 즉, 값과 형식이 모두 같아야 true를 반환합니다.

console.log(5 === "5"); // false
console.log(true === 1); // false
console.log(null === undefined); // false

일치 연산자는 정확한 비교를 수행하기 때문에 형 변환에 의한 오류를 방지할 수 있습니다. 따라서 타입을 엄격하게 비교하고자 할 때 일치 연산자를 사용하는 것이 좋습니다.

비교 예제

var num = 5;
var strNum = "5";

console.log(num == strNum); // true
console.log(num === strNum); // false

위 예제에서 동등 연산자는 값을 형 변환하여 5와 “5”를 비교한 결과로 true를 반환합니다. 그러나 일치 연산자는 값과 형식을 모두 비교하기 때문에 false를 반환합니다.

결론

동등 연산자와 일치 연산자는 값 비교에 사용되지만, 형식을 비교하기 위해서는 일치 연산자(===)를 사용하는 것이 좋습니다. 이를 통해 예상치 못한 결과와 혼동을 방지할 수 있습니다.

References