"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > `कंसोल.लॉग` संशोधित ऑब्जेक्ट मान अपवाद का कारण दिखाता है

`कंसोल.लॉग` संशोधित ऑब्जेक्ट मान अपवाद का कारण दिखाता है

2025-04-15 को पोस्ट किया गया
ब्राउज़ करें:698

Why Does `console.log` Show Unexpected Object Values After Modification?

इस कोड स्निपेट का विश्लेषण करके इस रहस्य को उजागर करें:

foo = [{id: 1}, {id: 2}, {id: 3}, {id: 4}, {id: 5},]; कंसोल.लॉग ('foo1', foo, foo.length); foo.splice (2, 1); Console.log ('foo2', foo, foo.length); [ऑब्जेक्ट, ऑब्जेक्ट, ऑब्जेक्ट, ऑब्जेक्ट, ऑब्जेक्ट] ५ 0: वस्तु 1: वस्तु 2: वस्तु 3: वस्तु लंबाई: 4 __proto__: सरणी [0] 5 (सूचकांक): 23 foo2 [ऑब्जेक्ट, ऑब्जेक्ट, ऑब्जेक्ट, ऑब्जेक्ट] ४ 0: वस्तु 1: वस्तु 2: वस्तु 3: वस्तु लंबाई: 4 __proto__: सरणी [0]

foo = [{id: 1},{id: 2},{id: 3},{id: 4}, {id: 5}, ];
console.log('foo1', foo, foo.length);
foo.splice(2, 1);
console.log('foo2', foo, foo.length);

एसिंक्रोनस परीक्षा

foo = [{id: 1},{id: 2},{id: 3},{id: 4}, {id: 5}, ];
console.log('foo1', foo, foo.length);
foo.splice(2, 1);
console.log('foo2', foo, foo.length);

इस व्यवहार को समझने की कुंजी कंसोल के माध्यम से ऑब्जेक्ट परीक्षा की अतुल्यकालिक प्रकृति में निहित है। जबकि कंसोल को ऑब्जेक्ट का एक संदर्भ समकालीन रूप से प्राप्त होता है, यह तब तक इसके गुणों को प्रदर्शित नहीं करता है जब तक आप इसे मैन्युअल रूप से विस्तारित नहीं करते हैं। यह अतुल्यकालिक रूप से होता है, प्रतीत होता है कि अतार्किक आउटपुट के लिए अग्रणी है। Console.log (obj.foo, obj.bar, obj.baz);)

एन्कोडिंग (जैसे, कंसोल.लॉग (json.parse (json.stringify (obj)));
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3