जावास्क्रिप्ट में कंसोल.लॉग और अलर्ट के बीच अंतर

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)

मैं इस समस्या में भाग गया।

इसलिए कोड के अंत में जब मैं अलर्ट (मेनू) करता हूं; मुझे [वस्तु वस्तु] मिलती है।

लेकिन जब मैं कंसोल.लॉग (मेनू) करता हूं; मुझे {चौड़ाई: 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(JSON.stringify(menu));