var bar=true; console.log(bar+0); //1 console.log(bar+"xyz"); //truexyz console.log(bar+true); //2 console.log(bar+false); //1 console.log('1'>bar); //false console.log(1+'2'+false); //12false console.log('2' + ['koala',1]); //2['koala',1] console.log([]==[]); // false console.log(![] == []) //true console.log([2]+3) //NaN console.log('2'+{}) //2{} console.log({}+""*5) // var O = { toString(){ return 'a' }, valueOf(){ return 1 } } console.log('2'+O) //2a console.log(2+O) //3