// 형변환 => String(), Number(), Boolean()
let x = '문자';
let x2 = '123';
let y = true;
let y2 = false;
console.log(Number(x)); //NaN
console.log(Number(x2)); //123
console.log(Number(y)); //1
console.log(Number(y2)); //0
// 0, false, '', NaN 을 false로 간주한다.
console.log(Boolean('문자')); //true
console.log(Boolean('123')); //true
console.log(Boolean('')); //false
console.log(Boolean(0)); //false
console.log(Boolean(NaN)); //false
// 비교가 불가능한 경우에는 'false' 가 나온다.
console.log('two' >= 1); //false
// '=='는 자동으로 형변환이 될 수 있다.
console.log(1 === '1'); //false
console.log(1 === true); //false
console.log(1 == '1'); //true
console.log(1 == true); //true
모든 '문자' 를 숫자형으로 바꿀 수 있다고 생각했지만, '숫자 문자열'은 가능하고, '그 이외의 문자열'은 숫자형으로 형변환 되지 못한다는 것을 이번에 알게됨
FALSE 는 0 , '', NaN
비교가 불가능하면 무조건 False
=== 으로 하면 가급적 편하다 ( 완전히 정확한 값을 말해주기 때문이다. )