क्रोम में consoleऑब्जेक्ट दो तरीकों को परिभाषित करता है जो एक ही काम करते हैं:
console.log(...)
console.dir(...)
मैंने कहीं ऑनलाइन पढ़ा है जो dirइसे लॉग इन करने से पहले ऑब्जेक्ट की एक कॉपी लेता है, जबकि logबस कंसोल के संदर्भ को पास करता है, जिसका अर्थ है कि जब तक आप लॉग किए गए ऑब्जेक्ट का निरीक्षण करने जाते हैं, तब तक यह बदल सकता है। हालांकि कुछ प्रारंभिक परीक्षण से पता चलता है कि कोई अंतर नहीं है और वे दोनों अलग-अलग राज्यों में संभावित रूप से प्रदर्शित वस्तुओं से पीड़ित हैं जब वे लॉग इन थे।
क्रोम कंसोल ( Ctrl+ Shift+ J) में यह देखने की कोशिश करें कि मेरा क्या मतलब है:
> o = { foo: 1 }
> console.log(o)
> o.foo = 2
अब, [Object]लॉग स्टेटमेंट के नीचे का विस्तार करें और ध्यान दें कि यह foo2 के मान से पता चलता है। यदि आप dirइसके बजाय प्रयोग को दोहराते हैं तो यह सच है log।
मेरा सवाल यह है कि ये दोनों समान रूप से समान कार्य क्यों करते हैं console?
console.dirपरिवर्तित नहीं किया जाता है, इसलिए यह एक बड़ा अंतर बनाता है।
console.dir(): यह सुविधा गैर-मानक है ! इसलिए उत्पादन पर इसका इस्तेमाल न करें;)


console.log([1,2])औरconsole.dir([1,2])आप अंतर देखेंगे।