JavaScript - "=="과 "==="의 차이

이정우·2021년 2월 26일
0

📌 비교 연산자

💡 1 == "1" -> true? false?

자바스크립트를 처음 시작하면서 가장 헷갈렸던 부분이 비교 연산자였다.

다른 언어에서는 두 값이 같을지 비교할 때 주로 == 또는 != 연산자를 사용하지만 자바스크립트는 ===!==를 사용한다.

아무 생각없이 코딩하다보면 또 헷갈리기 때문에 확실히 정리를 하고 넘어가야 한다.


📌 ==과 !=

💡 1 == "1" -> true!!

==(!=)은 동등(부등) 연산자로, 두 피연산자의 자료형이 다를 경우 형 변환을 통해 같은 자료형으로 바꾼 뒤 값을 비교한다.

   1  ==  1		// true
  "1" ==  1	 	// true
   1  == '1'		// true
   1  == true		// true

   0  == null		// false
   0  == undefined	// false
null  == undefined	// false

📌 ===과 !==

💡 1 === "1" -> false!!

==(!==)은 일치(불일치) 연산자로, 두 피연산자의 자료형이 다를 경우 false를, 같다면 그 값을 비교한다.

1 ===  1   // true
1 === "1"  // false

📌 객체 비교는?

💡 o1 == o2 -> true? false?

객체 간의 비교는 두 객체가 같은 메모리를 가리키고 있는지를 비교한다.

o1 = {"val" : 1, "index" : 1};
o2 = {"val" : 1, "index" : 1};

o1 == o2  // false
o1 === o2 // false

o2 = o1
o1 == o2  // true
o1 === o2 // true

참조

MDN

2개의 댓글

comment-user-thumbnail
2021년 3월 8일

와우! === 의 경우 ==의 기능을 포함하고있다고 볼 수 있겠네요! 속도는 ===가 느린가요??

1개의 답글