undefined, "", 0은 조건식 자리에서 작성하면 false로 판단한다.
if(!undefined){ console.log("값 없음") }else{ console.log("값 있음") }
undefined는 false이기 떄문에 if(!undefined)면 값 없음이 나온다.
"", 0 또한 마찬가지다.
- ==는 값만 비교한다. 같다면 true를 리턴한다.
- ===은 값과 타입 모두 비교한다. 같다면 true를 리턴한다.
data; // true, 하지만, data = "undefined"일 수도 있다. 그럴 때에도 true가 나온다. console.log(data == undefined); // 따라서 정확한 값과, 타입을 비교하기 위해선 ===을 사용해야한다. console.log(typeof(data) === 'undefined'); // 정수 1과 문자열 "1"의 경우 문자열이 자동으로 파싱되어 true가 나온다. console.log(1 == "1"); // 1은 number정수타입 "1"은 string타입이므로 false가 나온다. console.log(1 === "1"); // 1은 조건식에서 true다, console.log(1 == true); // 1은 타입이 number고 true는 타입이 boolean이라 false가 나온다. console.log(1 === true);