जावास्क्रिप्ट ब्रेसेस बनाम ब्रैकेट को गिरफ्तार करता है


111

निम्नलिखित सरणी परिभाषाओं में से प्रत्येक के बीच अंतर क्या है।

var myArray = [];
var myArray = {};
var myArray = new Array();

जवाबों:


137

पहला और तीसरा समतुल्य हैं और एक नई सारणी बनाते हैं। दूसरा एक नई खाली वस्तु बनाता है, एक सरणी नहीं।

var myArray = []; //create a new array
var myArray = {}; //creates **a new empty object**
var myArray = new Array(); //create a new array

हम वस्तु के मूल्यों का उपयोग कैसे करते हैं।
पिंकी

3
कोष्ठक या डॉट संकेतन के साथ: myObject["someValue"]या myObject.someValue{}वसीयत द्वारा बनाई गई खाली वस्तु में निश्चित रूप से वे गुण नहीं होंगे, लेकिन आप उन्हें उसी तरह से असाइन कर सकते हैं:myObject.someValue = "hello!"
johusman

4
इस विशेष मामले में 1 और 3 का समान प्रभाव होता है। हालांकि, कभी-कभी, वे अलग तरह से व्यवहार करते हैं। उदाहरण के लिए यदि var a = new Array(5)और var b = [5], फिर ab(के बाद से a.length= 5 जबकि b.length= 1, a[0]है undefined, जबकि b[0]पर 5 है, और इसलिए।)
हुनान Rostomyan

है var a;और var a = {};एक ही?
आरएनए

31

var myObject = {}; var के बराबर है myObject = new Object();

तो, दूसरा उदाहरण Arrayएक सामान्य नहीं है Object

यह भ्रामक हो सकता है क्योंकि Arrayएक वर्ग है और Objectएक वर्ग है - अधिक सटीक Arrayएक उप-वर्ग है Object। इसलिए, बड़े और बड़े, Objectशब्दार्थ एक पर लागू होते हैं Array:

var o = [];
o.push('element1');
o.push('element2');
o['property1'] = 'property value';  // define a custom property.
console.log(o.property1);
console.log(o.length);  // Outputs '2' as we've only push()'ed two elements onto the Array

2
कहां है Property1 संग्रहीत क्या यह सरणी में नहीं है
पिंकी

9
@Pinkie: यह अब भ्रमित हो रहा है: Arrays ऑब्जेक्ट्स भी हैं । ऐसा करके o['property1'] = 'property value', आप वास्तव में सरणी में एक तत्व नहीं जोड़ रहे हैं, लेकिन सरणी ऑब्जेक्ट की एक संपत्ति सेट कर रहे हैं । उलझन में? मैंने आपको बताया;) जावास्क्रिप्ट में, मूल रूप से सब कुछ एक वस्तु है। अन्य ऑब्जेक्ट, जैसे Array, RegExp... मूल ऑब्जेक्ट को आगे की कार्यक्षमता के साथ विस्तारित करते हैं। एक सादा, खाली वस्तु को घुंघराले कोष्ठक के साथ बनाया जाता है plain_obj = {}
फेलिक्स क्लिंग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.