Разница между console.log и предупреждением в 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)
Я столкнулся с этой проблемой.
так что в конце кода, когда я делаю предупреждение (меню); Я получаю [объект Object].
но когда я делаю console.log (меню); Я получаю {ширина: 400, высота: 600, заголовок: «Мое меню»}. Что я и хотел. Так в чем же разница?
Ответы
Это потому, что menu
сам по себе является объектом.
Когда мы используем предупреждение, открывается всплывающее окно с заданным сообщением, которое ожидает String. При передаче с объектом вместо этого вы получите[object Object]
alert(JSON.stringify(menu))
Вместо этого попробуйте увидеть полный строковый вывод
Если вы правильно прочитали на w3schools . Оповещение принимает строку в качестве параметра, а ваше меню не является строкой, это объект, поэтому вместо отображения меню он показывает тип меню
вы можете сделать что-то вроде этого:
alert(JSON.stringify(menu));