자바스크립트 기초 - 비교연산자

기튼당·2020년 7월 17일
0

목표: 자바스크립트 비교연산자의 개념을 확실하게 잡자

비교연산자

첫번째는 비교연산자다.
자바스크립트에서 동등연산자 == 와 일치연산자 === 의 차이는 뭘까?
==보다는 ===를 사용하라고 많이 들어봤지만, 정확한 개념을 알고 사용하기위해 다시한번 정리해보자

console.log(1 == '1') //?
console.log(1 === '1') //?

위 코드에서 결과가 어떻게 나올지 생각해보자.
자바스크립트에서 동등연산자 == 는 형변환을 해주고 엄격한 비교를한다.
객체일 경우에는 서로 같은 메모리를 바라보고 있는지 비교를 한다.

아래 일치연산자 ===를 사용했을때는 어떨까?
===는 형변환을 거치지않고 엄격한 비교를 한다는 차이가 있다.

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

결과는 이렇게 나올 것이다.
첫번째 줄 동등연산자를 사용했을 경우에는 형변환이 이루어져서 true가 나오고 두번째 줄은 서로 타입이 다르기 때문에 false가 나올 것이다.

추가적인 예시를 보자.

//동등연산자
console.log(0 == false);        // ?
console.log(1 == true);         // ?
console.log(null == undefined); // ?
console.log("" == false);       // ?
//일치연산자
console.log(0 === false);        // ?
console.log(1 === true);         // ?
console.log(null === undefined); // ?
console.log("" === false);       // ?

위와 같은 경우는 결과가 어떻게 나올까?
동등연산자의 경우 형변환을 해줄때 피연산자를 숫자형으로 바꿔준다고 한다. false와 ''은 0으로 바뀐다.
null 과 undefined의 관계는 조금 특별하다.
동등연산자 == 를 사용했을경우 true 일치연산자 === 를 사용했을 경우 false가 나온다.
위 코드에서 결과는 동등연산자는 모두 true, 일치연산자는 모두 false가 나온다.

참조: MDN 비교연산자
참조: 모던자바스크립트

profile
기초를 튼튼하게 하자.

0개의 댓글