Différence entre console.log et 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)

J'ai rencontré ce problème.

donc à la fin du code quand je fais une alerte (menu); J'obtiens [objet objet].

mais quand je fais console.log (menu); J'obtiens {largeur: 400, hauteur: 600, titre: 'Mon menu'}. C'est ce que je voulais. Alors, qu'est-ce qui fait la différence?

Réponses

3 IcyBloom Dec 15 2020 at 14:10

C'est parce que menului-même est un objet.

Lorsque nous utilisons alert, une fenêtre contextuelle s'ouvre avec un message donné, qui attend une chaîne. Une fois passé avec un objet, vous obtiendrez à la place[object Object]

Essayez alert(JSON.stringify(menu))plutôt de voir la sortie stringifiée complète

1 Ashish Dec 15 2020 at 14:10

Si vous lisez correctement sur w3schools . Alert prend une chaîne comme paramètre et votre menu n'est pas une chaîne, c'est un objet, donc au lieu d'afficher le menu, il affiche le type de menu

vous pouvez faire quelque chose comme ceci:

alert(JSON.stringify(menu));