자바스크립트의 기본적이지만, 다소 헷갈릴 수 있는 할당/동등/비교 연산자에 대해 공부해보자.
할당연산자 (=)
자바스크립트에서
=
는 일반 수학에서의 같다라는 의미가 아니라 데이터를 좌측의 변수에
할당해준다는 의미이다.const box = 'apple'
이와같이 box라는 변수를 선언하고 'apple'이라는 문자 데이터를 넣어주는 것이다.
비교연산자 (Comparison Operator)
비교연산자는 좌항과 우항의 피연산자를 비교한 다음 그 결과를 불리언 값으로 반환한다.
✔︎ 동등비교 연산자 vs 일치비교 연산자 차이점이 뭘까?
⭐️ 동등비교 (loose equality) 연산자 : 느슨한 비교
동등비교 연산자(
==
)는 좌항과 우항의 피연산자를 비교할 때
먼저 암묵적 타입 변환 을 통해 타입을 일치시킨 후 값을 비교한다.1 == 1 ; // => true 1 == '1'; // => true
x == y
: x와 y의 값이 같음
👉 x와 y의 값이 타입이 다르더라도 암묵적 타입 변환을 통해 동등비교 값이 같게 된다.
❌ 동등 비교 연산자는 예측하기 어려운 결과를 만들어내 가급적 사용을 지양하는게 좋다.⭐️ 일치비교 (stric equality) 연산자 : 엄격한 비교
일치비교 연산자(
===
)는 좌항과 우항의 피연산자가 타입도 같고 & 값도 같은 경우에만 true를 반환한다.1 === 1 ; // => true 1 === '1'; // => false
x === y
: x와 y의 값과 타입이 같음
✔︎ (참고)
NaN
( Not-A-Number)은 자신과 일치하지 않는 유일한 값이다!NaN === NaN; // => false
NaN 인지 확인하려면
isNaN()
메소드를 사용하자.