==, ===

김영진·2022년 7월 16일
0

TIL

목록 보기
3/29
post-thumbnail
post-custom-banner

동등 연산자

동등 연산자, ==, Equality operator
동등 연산자는 두 개의 피연산자가 동일한지 확인하고, 불린값을 반환한다. 일치 연산자와는 달리 다른 타입의 피연산자들끼리의 비교도 시도한다.

  • 숫자와 문자열을 비교할 경우, 문자열을 숫자로 변환
  • 하나의 피연산자가 불린일 경우, 불린의 값이 true면 1, false면 0으로 변환한다
  • 하나의 피연산자가 객체, 다른 하나가 숫자나 문자열이면 객체를 valueOf()toString()을 사용해 기본 데이터로 변환

타입변환 없이 비교

1 == 1;              // true
"hello" == "hello";  // true

타입변환을 이용한 비교

"1" ==  1;            // true
1 == "1";             // true
0 == false;           // true
0 == null;            // false
0 == undefined;       // false

객체들 간의 비교

const object1 = {"key": "value"}
const object2 = {"key": "value"};

object1 == object2 // false
object2 == object2 // true
  • 피연산자 모두 객체라면 기본형으로의 형 변환이 일어나지 않기 때문에, 같은 객체를 참조하고 있는게 아니라면 false가 반환된다.

일치 연산자

일치 연산자, ===, Strict equality operator
일치 연산자도 두 개의 피연산자가 동일한지 확인하고, 불린값을 반환한다. 다만 동등 연산자와의 가장 큰 차이점은 일치 연산자는 형 변환 없이 다른 유형은 항상 다른 것으로 간주한다.

같은 유형의 피연산자 비교

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

console.log(3 === 3);               // true
console.log(3 === 4);               // false

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

console.log(null === null);         // true

다른 유형의 피연산자 비교

console.log("3" === 3);           // false

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

console.log(null === undefined);  // false

가장 큰 차이점은?

동등 연산자는 일치 연산자와 달리 각 피연산자의 타입이 다르다면 비교 하기 전 형 변환이 이루어진다.

웬만하면 비교할 때 오류를 줄이려면 일치 연산자를 사용하도록 하자.

profile
노션 및 티스토리로 이동 예정입니다.
post-custom-banner

0개의 댓글