Diferencia entre console.log y alert en javascript

Dec 15 2020
let menu = {
    width: 200,
    height: 300,
    title: "My menu"
};

function multiplyNumeric(obj) {
    for (let key in obj) {
        if (typeof obj[key] == "number") {
            obj[key] *= 2;
        }
    }
}

multiplyNumeric(menu);

alert(menu);
console.log(menu)

Me encontré con este problema.

así que al final del código cuando lo hago alertar (menú); Obtengo [objeto Objeto].

pero cuando lo hago console.log (menu); Recibo {ancho: 400, alto: 600, título: 'Mi menú'}. Que es lo que quería. Entonces, ¿qué está causando la diferencia?

Respuestas

3 IcyBloom Dec 15 2020 at 14:10

Eso es porque en menusí mismo es un Objeto.

Cuando usamos alerta, se abre un cuadro emergente con un mensaje dado, que espera una cadena. Cuando se pasa con un objeto, en su lugar obtendrá[object Object]

En su alert(JSON.stringify(menu))lugar, intente ver la salida completa en cadena

1 Ashish Dec 15 2020 at 14:10

Si lee correctamente en w3schools . La alerta toma una cadena como parámetro y su menú no es una cadena, es un objeto, por lo que en lugar de mostrar el menú, muestra el tipo de menú

puedes hacer algo como esto:

alert(JSON.stringify(menu));