Różnica między console.log i alert w 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)
Napotkałem ten problem.
więc na końcu kodu, kiedy wykonuję alert (menu); Otrzymuję [obiekt Object].
ale kiedy robię console.log (menu); Otrzymuję {width: 400, height: 600, title: „Moje menu”}. Właśnie tego chciałem. Więc co powoduje różnicę?
Odpowiedzi
Dzieje się tak, ponieważ menu
sama jest przedmiotem.
Kiedy używamy alert, otwiera się wyskakujące okienko z podaną wiadomością, która oczekuje String. Gdy zostanie przekazany z przedmiotem, zamiast tego otrzymasz[object Object]
Spróbuj alert(JSON.stringify(menu))
zamiast tego zobaczyć pełne dane wyjściowe
Jeśli dobrze czytasz na w3schools . Alert przyjmuje ciąg jako parametr, a twoje menu nie jest łańcuchem, lecz obiektem, więc zamiast pokazywać menu, pokazuje typ menu
możesz zrobić coś takiego:
alert(JSON.stringify(menu));