Desafío Javascript: ¿Aceptás el reto?

Ciao a tutti ! Hoy traigo otra entrada interesante, esta vez dedicado a uno de los lenguajes de programación que mas me gusta: Javascript.


Si estás leyendo esto probablemente seas un JS developer.
Hoy traigo un desafío! Podrás decirme sin correr el código, que devuelven las siguientes expresiones?
Si te sorprende alguna, no dejes de leer mi siguiente post: Javascript: ¿Realmente lo conoces?

Suerte coders! :)

console.log(2.0 == "2")

console.log(2.0 === "2")

console.log(new Boolean(true) == "1")

console.log(new Boolean(true) === "1")

console.log(new Boolean(true) !== "1")

console.log(new Boolean(true) == "2")

console.log(2.0 == "2" == new Boolean(true) == "1")

console.log(new Boolean(true) === true)

console.log(0 == [])

console.log(0 == {})

console.log([] == []) 

console.log([] == "") 

console.log(3 - "1")   

console.log(3 + "1") 

console.log(NaN === NaN)         

console.log([1, 2, 3] + [4, 5, 6]) 

console.log([] + {})               

console.log("b" + "a" + +"a" + "a")


var peras = true;
var bananas = 10;
console.log(peras + bananas)

if('3' + 2 == 5) { console.log("Paso1"); }

if([]) { console.log("Paso2"); }

if( 4 + "1" == 5) { console.log("Paso3"); }

if(0) { console.log("Paso4"); }

if(5 + true == 6) { console.log("Paso5"); }

if(!undefined) { console.log("Paso6"); }

if({} == {}) { console.log("Paso7"); }

if(["3"] - 1 == 2) { console.log("Paso8"); }

if('' == []) { console.log("Paso9"); }