Sự khác biệt giữa console.log và alert trong 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)

Tôi gặp phải vấn đề này.

vì vậy ở cuối mã khi tôi làm cảnh báo (menu); Tôi nhận được [đối tượng Đối tượng].

nhưng khi tôi làm console.log (menu); Tôi nhận được {width: 400, height: 600, title: 'Menu của tôi'}. Đó là những gì tôi muốn. Vậy điều gì gây ra sự khác biệt?

Trả lời

3 IcyBloom Dec 15 2020 at 14:10

Đó là vì menubản thân nó là một Đối tượng.

Khi chúng tôi sử dụng cảnh báo, một hộp bật lên sẽ mở ra với một thông báo nhất định, trong đó mong đợi một Chuỗi. Khi được chuyển với một Đối tượng, thay vào đó bạn sẽ nhận được[object Object]

alert(JSON.stringify(menu))Thay vào đó hãy thử để xem đầu ra được xâu chuỗi đầy đủ

1 Ashish Dec 15 2020 at 14:10

Nếu bạn đọc đúng cách trên w3schools . Cảnh báo nhận chuỗi làm tham số và menu của bạn không phải là chuỗi mà nó là đối tượng, vì vậy thay vì hiển thị menu, nó hiển thị loại menu

bạn có thể làm điều gì đó như sau:

alert(JSON.stringify(menu));