लंबाई कॉल की गणना प्रत्येक कॉल पर नहीं की जाती है, लेकिन बाद वाला संस्करण तेज़ होगा क्योंकि आप संपत्ति लुकअप को कैश कर रहे हैं। यहां तक कि सबसे अद्यतित जेएस कार्यान्वयन (वी 8, ट्रेसमोन्की, गिलहरीफिश चरम) के साथ भी उन्नत (उदाहरण के लिए स्मॉलटाक युग;)) संपत्ति लुकअप करने वाली संपत्ति अभी भी कम से कम एक अतिरिक्त सशर्त शाखा है जो आपके दूसरे संस्करण से अधिक है।
ऐरे। लम्बाई स्थिर नहीं है हालांकि जेएस Arrays mutable हैं, इसलिए push, pop, array[array.length]=0, etc
सभी इसे बदल सकते हैं।
अन्य अवधारणाएं हैं जैसे डीओएम NodeList
एस जो आपको document.getElementsBySelector
जैसी कॉल से प्राप्त होती हैं, जिनकी स्थिति में रहने की उम्मीद है, जिस स्थिति में लंबाई को फिर से दबाया जा सकता है। लेकिन फिर यदि लंबाई को फिर से दबाया जाता है तो यह एक अच्छा मौका है कि यह वास्तव में भी बदल जाएगा, इसलिए आउटपुट को मैन्युअल रूप से कैशिंग करना वैध नहीं हो सकता है।
दो दृष्टिकोणों के बीच अंतर एक सरणी के लिए लापरवाह है। डीओएम से निपटने पर यह केवल महत्वपूर्ण हो जाता है। – AnthonyWJones