जवाबों:
[1,2,3,4,5,6][1,2,3];
^ ^
| |
array + — array subscript access operation,
where index is `1,2,3`,
which is an expression that evaluates to `3`.
दूसरा [...]एक सरणी नहीं हो सकता है, इसलिए यह एक सरणी सबस्क्रिप्ट ऑपरेशन है। और एक सबस्क्रिप्ट ऑपरेशन की सामग्री ऑपरेंड की एक सीमांकित सूची नहीं है, लेकिन एक एकल अभिव्यक्ति है।
यहाँ अल्पविराम ऑपरेटर के बारे में और पढ़ें ।
क्योंकि (1,2) == 2। आप अल्पविराम ऑपरेटर (या यहाँ सरल स्पष्टीकरण ) से टकरा गए हैं ।
जब तक अल्पविराम एक घोषणा सूची, पैरामीटर सूची, वस्तु या सरणी शाब्दिक में दिखाई देते हैं, वे किसी अन्य बाइनरी ऑपरेटर की तरह काम करते हैं। x, yमूल्यांकन करता है x, फिर मूल्यांकन करता है yऔर परिणाम के रूप में पैदावार देता है।
[1,2,3,4,5,6][1,2,3];
यहाँ दूसरा बॉक्स यानी अंतिम आइटम [1,2,3]बन जाता है [3]इसलिए यदि आप [1,2,3,4,5,6]किसी ऐरे में रखते हैं तो परिणाम 4 होगा
var arr=[1,2,3,4,5,6];
arr[3]; // as [1,2,3] in the place of index is equal to [3]
उसी प्रकार
*var arr2=[1,2,3,4,5,6];
// arr[1,2] or arr[2] will give 3*
लेकिन जब आप बीच में एक + ऑपरेटर रखते हैं तो दूसरा वर्ग ब्रैकेट इंडेक्स का उल्लेख करने के लिए नहीं होता है। यह एक और सरणी है, इसलिए आपको मिलता है
[1,2,3] + [1,2] = 1,2,31,2
अर्थात
var arr_1=[1,2,3];
var arr_2=[1,2];
arr_1 + arr_2; // i.e. 1,2,31,2
मूल रूप से पहले मामले में इसे सरणी के सूचकांक के रूप में उपयोग किया जाता है और दूसरे मामले में यह स्वयं एक सरणी है।