Разница между console.log и предупреждением в 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)

Я столкнулся с этой проблемой.

так что в конце кода, когда я делаю предупреждение (меню); Я получаю [объект Object].

но когда я делаю console.log (меню); Я получаю {ширина: 400, высота: 600, заголовок: «Мое меню»}. Что я и хотел. Так в чем же разница?

Ответы

3 IcyBloom Dec 15 2020 at 14:10

Это потому, что menuсам по себе является объектом.

Когда мы используем предупреждение, открывается всплывающее окно с заданным сообщением, которое ожидает String. При передаче с объектом вместо этого вы получите[object Object]

alert(JSON.stringify(menu))Вместо этого попробуйте увидеть полный строковый вывод

1 Ashish Dec 15 2020 at 14:10

Если вы правильно прочитали на w3schools . Оповещение принимает строку в качестве параметра, а ваше меню не является строкой, это объект, поэтому вместо отображения меню он показывает тип меню

вы можете сделать что-то вроде этого:

alert(JSON.stringify(menu));