==과 ===
==는 값이 동일한지 비교, 자동으로 형변환해서 비교한다
===는 값과 타입 모두 동일한지 비교, 형변환하지 않는다.
JS는 상당히 유연한 언어라서, 모든 형변환 케이스를 숙지하고 있기 힘들기 때문에 === 사용하는 것을 권장.
switch 문 인자로 int 값이 아닌 “string”형태도 가능.(다른 자료형이 되는지는 체크 필요.)
연산자
!
객체, “”, NaN에도 적용이 가능, Boolean과 같은 효과.
1 | var a = {}; |
&&
값이 boolean이 아닐시
- 둘중 하나라도, null/NaN/undefined라면 null/NaN/undefined 반환.
- 객체 && (_) : 앞 피연산자가 객체라면, 두번째 피연산자 반환.
- true && (객체) : 앞 피연산자가 true 일때만, 뒤 연산자 반환
||
값이 boolen이 아닐시
- 둘 모두 null/NaN/undefined라면, null/NaN/undefined 반환
- (객체) || _ : 앞 피연산자가 객체라면, 첫번째 객체 반환
- false || (객체) : 뒤 피연산자 반환.
+
1 | 5 + "5" // 55 |
<
1 | var result = "Brick" < "alphabet"; // true |
사전식 배열로 비교하려면, toLowerCase()를 사용해서 비교하자. JS 비교는 대문자가 더 앞서 위치함.
객체 비교
1 | var o1 = {a: 1}; |
o1과 o2는 객체 그 자체가 아니라, 객체를 가리키는 포인터이기 때문에 동등비교가 되지 않는다. 따라서 JSON.stringify를 통해 비교하는 것이 좋다고 한다.
Reference
http://enarastudent.tistory.com/entry/null과-undefined의-차이
https://stackoverflow.com/questions/1068834/object-comparison-in-javascript