🥸 할당 연산자는 우항에 있는 피연산자의 평가 결과를 좌항에 있는 변수에 할당하는 것으로 변수 값이 변하는 부수 효과가 있습니다.
=
: x = 5+=
: x = x + 5-=
: x = x - 5*=
: x = x * 5/=
: x = x / 5%=
: x = x % 5🔥 할당문은 값으로 평가되는 표현식인 문으로서 할당된 값으로 평가된다
🥸 비교 연산자는 좌항과 우항의 피연산자를 비교한 다음 결과를 불리언 값으로 반환해주며, if문이나 for문과 같은 제어문의 조건식에서 주로 사용합니다.
좌항과 우항의 피연산자를 비교할 때 먼저 암묵적 타입 변환을 통해 타입을 일치시킨 후 같은 값인지 비교합니다. 결과를 예측하기 어렵고 실수하기 쉽습니다.
const a = 1;
const b = 1;
const c = "1";
a == b //true
b == c //true
a == c //true
안티 패턴: 가독성, 성능, 유지보수 등에 부정적인 영향을 줄 수 있어 지양하는 패턴
'0' == ''; // false
0 == ''; // true
false == 'false'; // false
false == '0'; // true
false == null; // false
false == undefined; // false
좌항과 우항의 피연산자가 타입도 같고 값도 같은 경우에 한하여 true를 반환합니다
const a = 1;
const b = 1;
const c = "1";
a === b //true
b === c //false
a === c //false
NaN은 자신과 일치하지 않는 유일한 값입니다. 따라서 숫자가 NaN인지 궁금할 경우에는 Number.isNaN을 사용합니다.
NaN === NaN; // false
Number.isNaN(NaN); // true
Number.isNaN(10); // false
Number.isNaN(1 + undefined); // true
🔥 양의 0과 음의 0의 비교는 일치 비교, 동등 비교 관계없이 true를 반환한다
0 === -0; // true 0 == -0; // true
ES6에서 도입된 Object.is 메서드는 예측 가능한 정확한 비교 결과를 반환하고 그 외에는 일치 비교 연산자와 동일하게 동작한다.
Object.is(-0, +0); // true Object.is(NaN, NaN); // true
🧐 해당 글은 책
모던 자바스크립트 deep dive
를 참고하여 작성하였습니다.
🧐 산술 연산자, 논리연산자에 대해 궁금하시다면 여기를 클릭하세요.