할당 연산자, 비교 연산자

이다은·2022년 12월 13일
0
post-thumbnail

할당 연산자

🥸 할당 연산자는 우항에 있는 피연산자의 평가 결과를 좌항에 있는 변수에 할당하는 것으로 변수 값이 변하는 부수 효과가 있습니다.

종류

  • = : 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를 참고하여 작성하였습니다.
🧐 산술 연산자, 논리연산자에 대해 궁금하시다면 여기를 클릭하세요.

profile
안녕하세요

0개의 댓글