== 연산자
var value;
console.log(value == null);
-> undefined 와 null을 비교하면 true,(값만 비교하므로)
=== 연산자
var value;
console.log(value == null);
console.log(value === null);
|| 연산자
- 표현식의 평가 결과가 하나라도 true이면 true, true가 아니면 false
- 왼쪽 결과가 true이면 오른쪽은 비교하지 않음
var value, zero = 0, two = 2;
console.log(value || zero || two);
- value 변수값이 undefined 이므로 false
- zero 변수값이 0 이므로 false
- two 변수값이 2이므로 true가 되며 two 변수값을 반환
- true가 아니라 true가 되는 변수값 반환, 2가 true이므로 전체 비교는 true
- falsy한 값은 false, 0 , undefined, null, Nan, ''(빈문자열)
var value, zero = 0;
console.log(zero || value);
- value, zero 모두 false
- 마지막까지 비교했는데 모두가 false면 false가 아니라 마지막 변수값 반환
var one =1;
console.log(one ===1 || two ===2);
- 왼쪽의 one ===1 결과가 true이므로 true반환
- 왼쪽 비교 결과가 true이면 오른쪽은 비교하지 않음
- 오른쪽을 비교하면 two 변수가 없으므로 에러발생
&& 연산자
- 표현식의 평가 결과가 모두 true이면 true, 아니면 false
- 왼쪽 결과가 false이면 오른쪽은 비교하지 않음
var one =1, two =2;
console.log(one && two);
- one 변수값이 1이므로 true이므로 dhfmsWhrdmf qlry
- two 변수값이 2이므로 모두가 true이므로 마지막의 2를 반환