JavaScript - Implicit Coercion

console.clear();

var mStr = 'Hello';
var mNum = 5;
var mSum = mStr + mNum;

console.log(mSum);
console.log(typeof(mSum));

console.log('hola' + true);
console.log(typeof('hola' + true));

console.log(50 + true);
console.log(typeof(50 + true));

console.log(50 + 'hola');
console.log(typeof(50 + 'hola'));

console.log(+'2');
console.log(typeof(+'2'));

var mValue = '8970443545'
console.log(8970443545 + mValue);
console.log(typeof(8970443545 + mValue));

console.log(1000 > mValue);
console.log(typeof(1000 > mValue));

if (true) { console.log('True'); } else { console.log('False'); }
if (0) { console.log('True'); } else { console.log('False'); }
if ('Apple') { console.log('True'); } else { console.log('False'); }
if (false) { console.log('True'); } else { console.log('False'); }
if (undefined) { console.log('True'); } else { console.log('False'); }
if ('') { console.log('True'); } else { console.log('False'); }
if ('Rocket' + 10) { console.log('True'); } else { console.log('False'); }
if (10 - '10') { console.log('True'); } else { console.log('False'); }
        

JavaScript - Explicit Coercion

// Explicit Coercion
var mNum = 15;
console.log(typeof(String(mNum)));
console.log(typeof(String(true)));
console.log(typeof(String(-98.10)));
console.log(typeof(String(null)));
console.log(typeof(String(undefined)));

console.log(typeof(Number('2')));
console.log(Number(true), typeof(Number(true)));
console.log(Number(false), typeof(Number(false)));
console.log(Number('-98.10'), typeof(Number('-98.10')));
console.log(Number('Apple'), typeof(Number('Apple')));

console.log(Boolean(1), typeof(Boolean(1)));
console.log(Boolean(0), typeof(Boolean(0)));
console.log(Boolean('Apple'), typeof(Boolean('Apple')));
console.log(Boolean(null), typeof(Boolean(null)));
console.log(Boolean(undefined), typeof(Boolean(undefined)));
console.log(Boolean(''), typeof(Boolean('')));