2012-10-09 11 views
5

संभव डुप्लिकेट:
Is Chrome's JavaScript console lazy about evaluating arrays?क्रोम एक मान को एक सरणी से हटाए जाने के रूप में क्यों दिखा रहा है?

Chrome की js कंसोल किसी हटाए गए मूल्य के साथ एक सरणी दिखाया जा रहा है इससे पहले कि मूल्य हटाया जाता है। क्यूं कर?

jsFiddle that demonstrates this behavior

var list=[]; 
list.push("one"); 
list.push("two"); 
list.push("three"); 
console.log(list);      //["two", "three", undefined × 1] 
$("#output").append(JSON.stringify(list));//["one","two","three"] 

list.shift(); 

$("#output").append($("<br>")); 

console.log(list);      //["two", "three"] 
$("#output").append(JSON.stringify(list));//["two","three"] 

+0

इसी तरह के प्रश्नों पर अधिक आधिकारिक उत्तर हो सकते हैं: http://stackoverflow.com/questions/4198912/bizarre-console-log-behaviour-in-chrome-developer-tools, http://stackoverflow.com/प्रश्न/11214430/गलत-मूल्य-इन-कंसोल-लॉग, http://stackoverflow.com/questions/11118758/bug-in-console-log –

+0

http://stackoverflow.com/questions/4057440/is-chromes -javascript-console-lazy-about-मूल्यांकन-arrays? lq = 1 –

+0

क्या हमारे पास इस समस्या के लिए डुप्लिकेट प्रश्नों का एक गुच्छा है? –

उत्तर

6

क्रोम console.log में "देरी" है; इस मामले में मुझे विश्वास है कि कार्यक्रम के अंत तक।

यही है, क्रोम में, console.logइनपुट वस्तु तुरंत stringify नहीं है, बल्कि stringification "कुछ समय बाद" (जो बाद वस्तु इस मामले में संशोधित किया गया है) का इस्तेमाल करता है, लेकिन यह वास्तव में से पहले प्रदर्शित करता है परिणाम,

console.log(JSON.stringify(list)) अपेक्षित परिणाम दिखाएगा।


यह एक बग as far back as Chrome 5 (बग ठीक लक्ष्य, Mstone -22 है, इसलिए 20/21 Chrome नहीं है?) के रूप में सूचना मिली थी और एक ठीक webkit आधार पर जोड़ा गया है:

आज तक, कंसोल में ऑब्जेक्ट (सरणी) को डंप करने से ऑब्जेक्ट्स गुणों को कंसोल ऑब्जेक्ट विस्तार (यानी आलसी) पर पढ़ा जा सकता है। इसका मतलब यह है कि एक ही ऑब्जेक्ट को म्यूट करते समय इसे कंसोल करना कंसोल का उपयोग करके डीबग करना मुश्किल होगा।

यह परिवर्तन उनके लॉगिंग के समय वस्तुओं/सरणी के लिए संक्षिप्त पूर्वावलोकन उत्पन्न करना शुरू करता है और इस जानकारी को सामने के अंत में पास करता है। यह तब होता है जब फ्रंट एंड पहले ही खोला जाता है, यह केवल console.log() के लिए काम करता है, लाइव कंसोल इंटरैक्शन नहीं।

+0

जो वास्तव में मामला प्रतीत होता है। क्या आपके पास इसका संदर्भ है? –

+0

@ antony.trupe दुर्भाग्यवश, नहीं :( –

+0

यदि यह एक बग है, तो इसे [crbug.com] (http://crbug.com/) पर सबमिट किया जाना चाहिए? –

संबंधित मुद्दे