티스토리 뷰

이론/JS

[JS] 동치 연산자

millfeel1298 2021. 1. 4. 02:19
기호 형 변환 설명 공통
== O - 피연산자의 자료형이 같을 경우 형 변환 X
- 피연산자의 자료형이 같지 않은 경우, 숫자형으로 변환한 후, 비교한다.
- null, undefined는 형 변환이 되지 않는다.
- "null == undefined"는 true를 반환한다.
- 피연산자가 모두 객체라면, JavaScript는 내부 참조를 보고, 둘 다 메모리의 같은 객체를 바라보고 있는지 판별한다.
NaN과의 비교는
항상 false를
반환한다. 
=== X 피연잔자가 엄격히 같은지 판별한다.

동치 연산자의 종류

  1. 동등 연산자 (==)
  2. 부등 연산자 (!=)
  3. 일치 연산자 (===)
  4. 불일치 연산자 (!==)

동등 연산자

01. 피연산자의 자료형이 같을 경우: 형 변환하지 않는다.

1 == 1; //true
"문자" == "문자"; //true
false == false; //true
null == null; //true
undefined == undefined; //true

02. 피연산자의 자료형이 같지 않을 경우: 숫자형으로 변환한 후, 비교한다.

0 == ""; //true
"1" == 1; //true
true == 1 //true

03. null과 undefined는 형 변환을 하지 않는다.

Number(null); //0
Number(undefined); //NaN

null <= 0; //true
null == 0; //false

NaN == undefined; //false

- null을 숫자형 변환을 하면 0을 반환하지만, 동등 연산자(==)인 경우 형 번환을 하지 않아 false를 반환한다.

- undefined는 숫자형 변환을 하면 NaN을 반환하지만, 동등 연산자(==)인 경우 형 변환을 하지 않는다.

  (어차피 비교하는 유형이 NaN이기 때문에 형 변환을 하지 않아도 false...)

 

04. null == undefined는 true를 반환한다.

null == null //true
undefined == undefined //true
null == undefined //true

05. 피연산자가 모두 객체라면, JavaScript는 내부 참조를 보고, 둘 다 메모리의 같은 객체를 바라보고 있는지 판별한다.

let a = [undefined];
let b = [null];

a[0] == b[0]; //true

동등 연산자의 단점

0과 false를 구분하지 못한다.

false == 0; //true

일치 연산자

false === 0; //false

- 엄격한 동등 연산자이다.
- 자료형의 동등 여부까지 검사를 한다. (그렇기 때문에 형 변환 없이 값을 비교한다.)


[주의] NaN은 어떤 비교를 하든 항상 false를 반환한다.

NaN <= "undefined"; //false
NaN == NaN; //false
NaN === NaN; //false

[공부 좌표]

비교 연산자

 

[참고]

비교 연산자의 구성

관계 연산자

'이론 > JS' 카테고리의 다른 글

[JS] 관계 연산자  (0) 2021.01.04
[JS] 비교 연산자  (0) 2021.01.04
[JS] 객체의 참조  (0) 2021.01.03
[JS] Q. 함수 선언문과 함수 표현식의 차이는?  (0) 2021.01.02
[JS] 함수 선언문 / 함수 표현식  (0) 2021.01.02
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함