https://medium.com/@iamtherealbright/understanding-type-conversion-and-type-coercion-in-javascript-7dc9c3c8a511