alert(null>0);//false(1)
alert(null==0);//false(2)
alert(null>=0);//true(3)
(1),(3)의 기타 비교 연산자와 (2)의 동등 연산자는 동작 방식이 다르다.
그렇기 때문에 (2)는 거짓이 된다.
alert(undefined>0);//false(1)
alert(undefined<0);//false(2)
alert(undefined==0);//false(3)
undefined를 다른 값과 비교해서는 안된다.
if(...)문은 괄호 안의 표현식을 평가하고 그 결과를 불린값으로 변환한다.
숫자 0, 빈 문자열"", null, undefined, NaN은 불린형으로 변환 시 false가 된다. 이런 값들은 'falsy(거짓 같은)'값이라고 부른다. 그 외의 값은 true가 되므로 'truthy(참 같은)'값이라고 부른다.
if (0){...} : 0이 falsy이므로 실행되지 않는다.
if (1){...} : 1이 truthy이므로 실행된다.
let result = condition ? value1 : value2;
//condition이 truthy라면 value1, 그렇지 않으면 value2가 반환된다.
let age = year > 18 ? true : false;
let age = year > 18;
//비교 연산자 자체가 true나 false를 반환하기 때문에 위 아래 예시가 같다.
조건에 따라 반환 값을 달리하려는 목적에 부합하는 곳에는 물음표 연산자'?'를 사용하고, 여러 분기를 만들어 처리할 때는 우리 눈은 수직으로 된 코드를 읽는 것이 더 읽기 쉽게 느껴지기 때문에 if를 사용하는 것이 좋다.