Unterschied zwischen console.log und 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)
Ich bin auf dieses Problem gestoßen.
also am Ende des Codes, wenn ich alarmiere (Menü); Ich bekomme [Objekt Objekt].
aber wenn ich console.log (Menü) mache; Ich erhalte {Breite: 400, Höhe: 600, Titel: 'Mein Menü'}. Welches ist, was ich wollte. Was verursacht den Unterschied?
Antworten
Das liegt daran, dass es menu
sich um ein Objekt handelt.
Wenn wir alert verwenden, wird ein Popup-Fenster mit einer bestimmten Nachricht geöffnet, die einen String erwartet. Wenn Sie mit einem Objekt übergeben werden, erhalten Sie stattdessen[object Object]
Versuchen Sie alert(JSON.stringify(menu))
stattdessen, die vollständige String-Ausgabe anzuzeigen
Wenn Sie auf w3schools richtig lesen . Bei der Warnung wird eine Zeichenfolge als Parameter verwendet, und Ihr Menü ist keine Zeichenfolge, sondern ein Objekt. Anstatt das Menü anzuzeigen, wird der Menütyp angezeigt
Sie können so etwas tun:
alert(JSON.stringify(menu));