Diferença entre console.log e alert em 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)

Corri para este problema.

então no final do código quando eu faço alert (menu); Eu obtenho [objeto Object].

mas quando faço console.log (menu); Eu obtenho {largura: 400, altura: 600, título: 'Meu menu'}. Que é o que eu queria. Então, o que está causando a diferença?

Respostas

3 IcyBloom Dec 15 2020 at 14:10

Isso porque menuele mesmo é um objeto.

Quando usamos o alerta, uma caixa pop-up é aberta com uma determinada mensagem, que espera um String. Quando passado com um objeto, você receberá[object Object]

Tente, em alert(JSON.stringify(menu))vez disso, ver a saída stringificada

1 Ashish Dec 15 2020 at 14:10

Se você leu corretamente no w3schools . O alerta leva uma string como parâmetro e o seu menu não é uma string, é um objeto então em vez de mostrar o menu mostra o tipo de menu

você pode fazer algo assim:

alert(JSON.stringify(menu));