जावास्क्रिप्ट में कंसोल.लॉग और अलर्ट के बीच अंतर
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, शीर्षक: 'मेरा मेनू'} मिलता है। जो मैं चाहता था। तो क्या अंतर पैदा कर रहा है?
जवाब
वह इसलिए कि menu
स्वयं एक वस्तु है।
जब हम अलर्ट का उपयोग करते हैं, तो दिए गए संदेश के साथ एक पॉप अप बॉक्स खुलता है, जो स्ट्रिंग की अपेक्षा करता है। जब किसी ऑब्जेक्ट के साथ पास किया जाता है, तो आप बदले में प्राप्त करेंगे[object Object]
alert(JSON.stringify(menu))
इसके बजाय पूर्ण कठोर आउटपुट देखने का प्रयास करें
यदि आप w3schools पर ठीक से पढ़ते हैं । चेतावनी स्ट्रिंग को पैरामीटर के रूप में लेती है और आपका मेनू एक स्ट्रिंग नहीं है जो कि वस्तु है इसलिए मेनू दिखाने के बजाय यह मेनू के प्रकार को दिखाता है
आप ऐसा कुछ कर सकते हैं:
alert(JSON.stringify(menu));