दिलचस्प पोस्ट
मेमोरी लीक का निदान – # बाइट्स की स्वीकार्य स्मृति आकार समाप्त हो गया मॉडल बनाते समय कई चर के लिए लघु सूत्र कॉल इकाई फ़्रेमवर्क का उपयोग करते हुए एसक्यूएल सर्वर डाटाबेस में परिवर्तनों को सहेजते समय एक या एक से अधिक संस्थाओं के लिए सत्यापन विफल हुआ 'यदि' में 'चयन' कथन – स्तंभ मूल्यों के आधार पर आउटपुट मान चुनें बेस 64 को डीकोड करने के लिए जावास्क्रिप्ट एटोब का इस्तेमाल करना यूटीएफ -8 तारों को ठीक से व्याख्या नहीं करता है Google API के लिए Android कुंजी के लिए उपयोग को सीमित करना बाइनरी में दशमलव संख्या का प्रतिनिधित्व क्यों नहीं किया जा सकता है? हाइबरनेट @ किसी भी-संबंधित एनोटेशन का उपयोग कैसे करें? जेनरिक – जहां टी एक संख्या है? नो-फॉर वर्चुअल माचिनएर्रर गारंटीएं कैसे 'टचस्टार्ट' और 'क्लिक करें' घटनाओं को बाध्य करें, लेकिन दोनों का जवाब नहीं है? क्या PHP में फ़ंक्शन को ओवरराइट करना संभव है? एक सरणी में अद्वितीय मान कैसे प्राप्त करें एक वीडियो यूआरएल से थंबनेल या आईफोन एसडीके में डेटा प्राप्त करना एक फ्लोट को स्ट्रिंग में कनवर्ट करें

जावास्क्रिप्ट में "अपरिभाषित x 1" क्या है?

मैं इस ब्लॉग प्रविष्टि के आधार पर कुछ छोटे प्रयोग कर रहा हूं।

मैं Google क्रोम के डिबगर में यह शोध कर रहा हूं और यहां कठिन हिस्सा आता है।

यह क्या बकवास है?!

मुझे यह तथ्य मिलता है कि मैं स्थानीय चर को नहीं हटा सकता (क्योंकि वे ऑब्जेक्ट विशेषताएँ नहीं हैं)। मुझे लगता है कि मैं 'सभी' पैरामीटर पारित एक 'समारोह में पारित कर सकते हैं सरणी' से कहा 'तर्क' मैं यह भी समझता हूं कि मैं हटा नहीं सकता और सरणी का तत्व, केवल array[0] को प्राप्त करने के लिए अपरिभाषित का मान है

क्या कोई मुझे समझा सकता है कि एम्बेडेड छवि पर undefined x 1 क्या है?

और जब मैं arguments[0] वापस करने के लिए फ़ंक्शन foo को अधिलेखित करता हूं, तो मुझे सामान्य और 'सामान्य' अपरिभाषित मिलता है

यह केवल एक प्रयोग है, लेकिन हस्तक्षेप लगता है, क्या किसी को पता नहीं कि undefined x 1 क्या है?

वेब के समाधान से एकत्रित समाधान "जावास्क्रिप्ट में "अपरिभाषित x 1" क्या है?"

ऐसा लगता है कि क्रोम का कोई नया प्रारंभिक अनुक्रमण प्रदर्शित करने का नया तरीका सरणी (और सरणी-समान ऑब्जेक्ट्स) है:

 > Array(100) [undefined × 100] 

जो निश्चित रूप से प्रिंटिंग से बेहतर है [undefined, undefined, undefined,...] या हालांकि यह पहले था।

यद्यपि, यदि केवल एक undefined मान है, तो वे x 1 को छोड़ सकते हैं

Google क्रोम इस undefined xn नोटेशन का उपयोग करते हुए स्पार्स सरणी को प्रदर्शित करने के लिए चुनते हैं। यह दिखाएगा [undefined, undefined] अगर यह एक सरणी नहीं है:

 var arr = new Array(2); console.log(arr); var arr2 = []; arr2[3] = 123; console.log(arr2); var arr3 = [,,,]; console.log(arr3) var arr4 = [,]; console.log(arr4) var arr5 = [undefined, undefined] console.log(arr5) var arr6 = [undefined] console.log(arr6) 

arr1 के लिए arr4 सभी विरल सरणियां हैं, जबकि arr5 और arr6 नहीं हैं। क्रोम उन्हें इन्हें दिखाएगा:

 [undefined × 2] [undefined × 3, 123] [undefined × 3] [undefined × 1] [undefined, undefined] [undefined] 

विरल सरणी के लिए [undefined x 1] नोट करें

चूंकि आपने किसी तत्व को हटा दिया है, यह निम्नानुसार है: यदि आप किसी तत्व से किसी तत्व को हटाते हैं, तो सरणी विरल हो जाती है।

यह कैसे दिखता है, इस कोड को क्रोम devtools कंसोल में टाइप करें: –

 arr = new Array(4); arr[2] = "adf"; console.log(arr); // [undefined × 2, "adf", undefined × 1] 

पहले दो लगातार "अपरिभाषित" देखें, जो कि * 2 द्वारा दर्शाए गए हैं, यह दर्शाते हैं कि वहां दो लगातार अनिर्धारित हैं

क्रोम के नए संस्करण में थोड़े स्पष्ट करने के लिए, undefined × बजाय empty × उपयोग करें।

उदाहरण के लिए, DevTools कंसोल परिणामों में [, undefined] दर्ज करने में:

 ▶(2) [empty × 1, undefined] 

और में चाबियाँ जांचना:

 ▼(2) [empty × 1, undefined] 1: undefined length: 2 ▶__proto__: Array(0) 

यह सिर्फ मेरे साथ भी हुआ दूसरे ब्राउज़र में एक ही चीज़ को खोलें और कंसोल में सरणी को आउटपुट / लॉग आउट करें। जब तक यह दोनों crome और फ़ायरफ़ॉक्स में उसी तरह काम करता है (जैसा कि तत्वों तक पहुँचने के मामले में ठीक काम करता है भले ही आउटपुट में undefinedx1 है), मैं समझता हूं कि क्रोम में किसी तरह का बग आंतरिक रूप से कुछ ताज़ा नहीं करता है आप वास्तव में इसका परीक्षण कर सकते हैं:

  1. मैं तत्वों को एक सरणी में जोड़ रहा था, और element.log () को फायर करने के लिए तत्व को लॉग करने के लिए, यह जांचने के लिए कि यह अपरिभाषित है या नहीं। वे सब परिभाषित थे
  2. धक्का () के बाद मैंने सरणी को लॉग किया और ऐसा प्रतीत होता है कि जब यह हुआ, तो यह हमेशा क्रोम पर एक्स 1 परिभाषित किया गया था।
  3. फिर मैंने इसे अधिक बार और बाद में प्रवेश करने की कोशिश की, लेकिन उसी परिणाम के साथ।
  4. हालांकि जब मैंने (आउटपुट के लिए) उपयोग किया, तो उसके सूचकांक का तत्व, यह उचित मूल्य (अजीब) लौटा था
  5. इसके बाद मैंने फिर से सरणी में लॉग इन किया और कहा कि अंतिम इंडेक्स को एक्स 1 को परिभाषित नहीं किया गया था (यह बहुत ही मैंने सीधे सफलता के साथ पहुँचा!)।
  6. फिर मैंने सरणी पर लूप के लिए, प्रत्येक तत्व को प्रवेश या प्रयोग किया, सभी को ठीक दिखाई दिया।
  7. फिर सरणी पर एक और लॉग, अभी भी छोटी गाड़ी

    मैं मूल रूप से उपयोग कर रहा हूँ कोड अनिर्धारित के लिए जाँच की है और वे आग नहीं था, लेकिन मैं सांत्वना में इन सभी अनिर्धारित देख रहा था और यह मुझे (कोई यमक इरादा) गुस्सा दिलाना था।

इसके अलावा पढ़ने के लायक: केवल सरणी पश का उपयोग करते समय एक सरणी में आरंभ किए गए चर? मैं अपने कोड में पॉप () का भी उपयोग कर रहा हूं और यह एक उचित स्पष्टीकरण है कि कंसोल लॉग वास्तव में एक अलग स्थिति का प्रतिनिधित्व करता है (जब कोड 'रुका हुआ') होता है।