
동등연산자(==)는 피연산자들의 값만 비교합니다. 반면에 일치연산자(===)는 피연산자들의 값과 타입을 모두 비교합니다.
비교하려는 값의 데이터 타입이 다르면 자바스크립트는 이 값들을 숫자형으로 바꿉니다.
console.log('01' == 1) // true, 문자열 '01'이 숫자 1로 변환된 후 비교 진행
boolean의 경우 true 는 1, false 는 0으로 변환된 후 비교가 이루어집니다. 
console.log(true == 1) // true
console.log(false == 0) // true
동등연산자 ==은 아래처럼 0과 false를 구별하지 못합니다. 
console.log(0  == false); // true
console.log('' == false); // true
동등연산자 ==가 데이터 타입이 다른 피연산자를 비교할 때, 피연산자를 숫자로 바꾸기 때문에 이와 같은 일이 발생합니다. 
0과 false를 구분하려면 어떻게 해야할까요?
일치연산자를 사용하면 데이터 타입의 변환 없이 값을 비교할 수 있습니다. 일치연산자는 데이터타입의 동등여부까지 검사하기 때문에, 피연산자의 데이터타입이 다를 경우 false를 반환합니다. 
console.log(0 === false) // false
null과 undefined  모두 '값이 없다'는 값이자, 데이터 타입을 나타냅니다.
null은 값이지만 값으로서 의미없는 특별한 값이 등록되어 있는 것이고, undefined는 등록이 되어있지 않기 때문에 초기화도 정의되어 있지 않은 것 입니다. 
동등연산자는 값만 비교하기 때문에 null과 undefined의 비교시 true를 반환합니다. 
console.log(null == undefined) //true
일치연산자는 값과 타입을 비교하는데, null과 undefined의 데이터 타입이 다르기 때문에 false가 반환됩니다. 
console.log(null === undefined) //false