दिलचस्प पोस्ट
क्यों XmlSerializer को चिह्नित करने की आवश्यकता नहीं है? सीबेइन / सेंड के पीछे क्या कारण है? सप्ताह, महीनों, तिमाहियों और वर्षों के संदर्भ में तिथियों के बीच का अंतर प्राप्त करें D3.js मानचित्र: इसे घुमाने के लिए कैसे? UIDevice अद्वितीय पहचानकर्ता अप्रतिबंधित – अब क्या करना है? सी स्ट्रिंग में \ 0 प्रतीक का क्या अर्थ है? मैं पर्यावरण के चर के जरिए जावा की न्यूनतम और अधिकतम आकार का आकार कैसे निर्धारित करूं? एक ऑब्जेक्ट सरणी में अनुक्रमणिका विधि? जावा में परिपत्र संदर्भ कैसे socket.io में कनेक्शन का पुन: उपयोग करने के लिए? एंड्रॉइड – "बैक" बटन ओवरराइड करने के लिए कैसे करें, तो यह मेरी गतिविधि समाप्त नहीं करता? TFS विशिष्ट संस्करण अलग फ़ोल्डर में प्राप्त करें "Http://java.sun.com/jsp/jstl/core" के लिए टैग लाइब्रेरी डिस्क्रिप्टर नहीं मिल सकता है लॉगिन बटन के बिना फेसबुक प्रमाणीकरण SQL सर्वर रिपोर्टिंग सेवा रिपोर्ट में वैकल्पिक रंग पंक्ति जोड़ें

क्या ऐरे और ऑब्जेक्ट में स्पेस का हिस्सा है?

क्या जावास्क्रिप्ट में अल्पविराम मानक रहे हैं, या क्रोम और फ़ायरफ़ॉक्स जैसे अधिकांश ब्राउज़रों ने उन्हें बर्दाश्त किया है?

मैंने सोचा था कि वे मानक थे, लेकिन IE8 ने एक कोर्स का सामना करने के बाद इसका मतलब उठाया था कि IE का कोई समर्थन नहीं है इसका मतलब यह नहीं है कि यह मानक नहीं है।

यहां मेरा क्या मतलब है इसका एक उदाहरण है (पुस्तकों के अंतिम तत्व के बाद):

var viewModel = { books: ko.observableArray([ { title: "..", display: function() { return ".."; } }, { title: "..", display: function() { return ".."; } }, { title: "..", display: function() { return ".."; } }, // <--right there ]), currentTemplate: ko.observable("bookTemplate1"), displayTemplate: function() { return viewModel.currentTemplate(); } }; 

वेब के समाधान से एकत्रित समाधान "क्या ऐरे और ऑब्जेक्ट में स्पेस का हिस्सा है?"

चश्मा: ECMAScript 5 और ECMAScript 3


ECMAScript 5 विनिर्देश में खंड 11.1.5 :

 ObjectLiteral : { } { PropertyNameAndValueList } { PropertyNameAndValueList , } 

तो हां, यह विनिर्देशन का हिस्सा है

अद्यतन: जाहिर है यह ईएस 5 में नया है। ES3 में (पृष्ठ 41), परिभाषा ही थी:

 ObjectLiteral : { } { PropertyNameAndValueList } 

Arrays literals ( अनुभाग 11.1.4 ) के लिए यह और भी रोचक है ( अपडेट: यह पहले से ही ES3 में मौजूद था):

 ArrayLiteral : [ Elisionopt ] [ ElementList ] [ ElementList , Elision_opt ] 

(जहां Elision_opt ऑप्ट है , जिसका अर्थ है कि Elision_opt वैकल्पिक है)

Elision के रूप में परिभाषित किया गया है

 Elision : , Elision , 

तो, एक सरणी की तरह शाब्दिक

 var arr = [1,2,,,,]; 

बिल्कुल कानूनी है यह दो तत्वों के साथ एक सरणी बनाता है, लेकिन सरणी की लंबाई को 2 + 3 = 5 निर्धारित करता है।

IE (आईई 9 से पहले) से बहुत ज्यादा उम्मीद नहीं है …

सिर्फ एक त्वरित अनुस्मारक / चेतावनी यह है कि यह उन क्षेत्रों में से एक है जिसमें JavaScript / ECMAScript मानक और JSON मानक भिन्न होता है; अनुगामी कॉमा जेएस में मान्य हैं लेकिन JSON में मान्य नहीं है

क्या मायने रखता है, आईई 7 देता है

 [1,].length --> 2 

जबकि फ़ायरफ़ॉक्स और क्रोम

 [1,].length --> 1 

आप जावास्क्रिप्ट के लिए विनिर्देश (उर्फ ECMA स्क्रिप्ट) यहां पा सकते हैं। आप पृष्ठ 63 पर सरणियों के लिए प्रासंगिक परिभाषा पा सकते हैं और फेलिक्स ने नोट किया है कि ऑब्जेक्ट की परिभाषा पृष्ठ 65 के बाद के कुछ पृष्ठों पर है।

हालांकि यह विनिर्देश कहता है कि अनुगामी होने के लिए ठीक है , मुझे नहीं पता कि यह कुछ संस्करणों को वापस देखकर सही होगा। जैसा कि आपने IE8 का उल्लेख किया है- यदि आप पीछे वाले अल्पविराम छोड़ देते हैं, तो क्रोम और एफएफ ने इसे ठीक कर दिया है।

क्रोम 52 पर:

 [1,].length --> 1 [1,2,].length --> 2 [].length --> 0 [,].length --> 1 <<<<=== OUHHHHH !!!! 

मुझे सिर्फ अल्पविराम से पीछे नहीं होना पसंद है लोग आमतौर पर ओपन सोर्स परियोजनाओं में उन्हें एक अन्य कम्यूटेटर द्वारा लिखे गए पंक्ति को मिटाने के लिए इस्तेमाल करते हैं। पायथन में एक ही प्रश्न देखें: https://stackoverflow.com/a/11597911/968988