console.logとjavascriptのalertの違い

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)

私はこの問題に遭遇しました。

したがって、コードの最後でalert(menu)を実行します。[オブジェクトオブジェクト]を取得します。

しかし、console.log(menu);を実行すると {幅:400、高さ:600、タイトル: 'マイメニュー'}を取得します。それが私が欲しかったものです。では、何が違いを引き起こしているのでしょうか?

回答

3 IcyBloom Dec 15 2020 at 14:10

それmenu自体がオブジェクトだからです。

アラートを使用すると、文字列を期待する特定のメッセージを含むポップアップボックスが開きます。オブジェクトとともに渡されると、代わりに次のようになります。[object Object]

alert(JSON.stringify(menu))代わりに、完全な文字列化された出力を確認してみてください

1 Ashish Dec 15 2020 at 14:10

w3schoolsで正しく読んだら。Alertは文字列をパラメータとして受け取り、メニューはそのオブジェクトの文字列ではないため、メニューを表示する代わりにメニューのタイプを表示します

あなたはこのようなことをすることができます:

alert(JSON.stringify(menu));