Differenza tra console.log e alert in javascript
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)
Mi sono imbattuto in questo problema.
quindi alla fine del codice quando faccio alert (menu); Ottengo [Object Object].
ma quando faccio console.log (menu); Ottengo {larghezza: 400, altezza: 600, titolo: 'Il mio menu'}. Che è quello che volevo. Allora qual è la causa della differenza?
Risposte
Questo perché esso menustesso è un oggetto.
Quando usiamo alert, si apre una finestra pop-up con un dato messaggio, che si aspetta una stringa. Quando viene passato con un oggetto, otterrai invece[object Object]
Prova alert(JSON.stringify(menu))invece a vedere l'output completo di stringhe
Se leggi correttamente su w3schools . Alert prende una stringa come parametro e il tuo menu non è una stringa, è un oggetto, quindi invece di mostrare menu mostra il tipo di menu
puoi fare qualcosa del genere:
alert(JSON.stringify(menu));