💡 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
와우! === 의 경우 ==의 기능을 포함하고있다고 볼 수 있겠네요! 속도는 ===가 느린가요??