कंप्यूटरप्रोग्रामिंग

जावास्क्रिप्ट सरणी और इसके निर्माण। जावास्क्रिप्ट सरणियों के बारे में सभी

इस लेख में हम जावास्क्रिप्ट सरणी, उसके घटकों पर दिखेगा। जावास्क्रिप्ट एक आदर्श परिदृश्य ओरिएंटेड प्रोग्रामिंग के लिए बनाया गया भाषा है। वास्तव में, यह ECMAScript भाषा (मानक ECMA-262) लागू करता है।

जावास्क्रिप्ट का? यह आदेश विषय आवेदन करने के लिए कार्यक्रम का पथ निर्धारित करने के लिए एक एम्बेडेड भाषा के रूप में प्रयोग किया जाता है। यह ब्राउज़र में पाया जा सकता है: यह एक स्क्रिप्टिंग भाषा है जो वेब पृष्ठों इंटरैक्टिव देता है के रूप में वहाँ प्रयोग किया जाता है।

इस उत्पाद के प्रमुख वास्तु विशेषताएं गतिशील और कमजोर टाइपिंग, avtoupravlenie स्मृति आदर्श प्रोग्रामिंग कार्य करता है जो पहले मुक्ति की वस्तुओं रहे हैं।

वास्तव में, जावास्क्रिप्ट में, विभिन्न कारणों से प्रभावित है क्योंकि विकास जावा के समान है, लेकिन प्रोग्रामर द्वारा उपयोग करने के लिए आसान एक भाषा बन जाएगा। वैसे, जावास्क्रिप्ट भाषा किसी भी कंपनी या संगठन है कि यह वेब डेवलपर्स द्वारा इस्तेमाल किया प्रोग्रामिंग शैलियों के एक नंबर से अलग बनाता है मालिक नहीं है।

ऐसा लगता है कि जावास्क्रिप्ट - Oracle कार्पोरेशन समूह का एक पंजीकृत ट्रेडमार्क।

एक सरणी क्या है?

कहा जाता है सरणी डेटा प्रकार, जो क्रमांकित मान संग्रहीत करता है। इस तरह के प्रत्येक मान, के रूप में सरणी घटक और अंकों जहाँ से घटक बांधता में जाना जाता है एक सूचकांक कहा जाता है। untyped की जावास्क्रिप्ट सरणी। इसका मतलब यह है ठोस भागों जो कुछ भी प्रकार, एक ही सरणी से संबंधित विभिन्न भागों के साथ, पूरी तरह से विभिन्न प्रकार हो सकता है।

इसके अलावा, जावास्क्रिप्ट सरणी गतिशील है, और यह कहा जाता है कि एक निश्चित आकार घोषित करने की जरुरत नहीं। किसी भी समय नए भागों को जोड़ने के बाद।

ठोस उत्पादन

जावास्क्रिप्ट भाषा का उपयोग करते हुए एक सरणी काफी मुश्किल बनाने के लिए। इस के लिए दो तरीके हैं। पहले एक सरणी एक शाब्दिक का उपयोग करने का उत्पादन शामिल है - वर्ग कोष्ठक है, जो अंदर मदों की एक सूची रख दिया गया है की, अल्पविराम से विभाजित।

  • वर खाली = []; // खाली सरणी;
  • वर numers = [4, 1, 2, 5]; // पाँच डिजिटल घटकों के साथ सरणी;
  • वर diff = [1.5, झूठे, «पाठ"]; // विभिन्न प्रकार के तीन तत्वों के साथ सरणी।

एक नियम के रूप में, यह सरल मूल्यों (पंक्तियों और संख्या) होने की आवश्यकता नहीं है। यह भी किसी अन्य भाव, उदाहरण के लिए, वस्तु शाब्दिक, अन्य कार्यों और सरणियों हो सकता है।

एक सरणी डिजाइनर बनाने के लिए दूसरा तरीका सरणी कॉल करने के लिए है ()। उसे तीन तरीकों में से एक के लिए आमंत्रित करने के लिए:

  • बहस के बिना एक डिजाइनर कॉल करें: वर ख - नई सरणी ()। यह एक खाली शाब्दिक [] के लिए एक खाली सरणी बराबर के निर्माण के लिए प्रदान करता है।
  • वर ख = नई सरणी (1, 3, 5, 8, "रेखा», सच): डिजाइनर स्पष्ट सरणी घटकों के मूल्य n को निर्दिष्ट किया है। इस मामले में, डिजाइनर तर्क है, जो एक नई सरणी घटकों के रूप में तब्दील कर रहे हैं की एक सूची प्रस्तुत किया। तर्क सरणी के लिए लिखा जाता स्थान जहां संकेत दिया है।
  • आगे बताए मूल्यों के लिए गुंजाइश को परिभाषित करना। यह पता लगाने सरणी एक संख्या कोष्ठक में संलग्न निर्दिष्ट करके किया जाता: var b = नई सरणी (5)। का पता लगाने का यह तरीका आवंटन सरणी प्रस्तुति में मान निर्दिष्ट की संभावना के साथ घटकों के लिए आवश्यक मात्रा में (जिनमें से प्रत्येक अपरिभाषित रूप में सूचीबद्ध है) शामिल है। यह फार्म आमतौर पर पहले से आवंटित करने के लिए जावास्क्रिप्ट सरणी जिसकी लंबाई अग्रिम में जाना जाता है प्रयोग किया जाता है।

, रिकॉर्डिंग पढ़ने और सरणी के विवरण जोड़

सरणी के घटकों के लिए जाओ ऑपरेटर के माध्यम से [] हो सकता है। वैसे, जावास्क्रिप्ट में सभी घटक, शून्य से शुरू गिने जा रहे हैं। आवश्यक तत्वों को प्राप्त करने के अपने अंक को सूचित वर्ग कोष्ठक। एक सामान्य नियम के रूप में, आइटम बदला जा सकता है। JavaScript शृंखला में जोड़ने के लिए, यह एक नई मान देना पर्याप्त है।

ऐसा लगता है कि जावास्क्रिप्ट में सरणियों किसी भी तरह के तत्वों के किसी भी संख्या स्टोर कर सकते हैं।

सरणी की लंबाई

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

एक सरणी के अंतिम घटक प्रदर्शित करने के लिए, आप लंबाई संपत्ति का उपयोग कर सकते हैं।

अंतिम भाग सूचकांक एक सरणी के आकार से कम है। उल्टी गिनती के बाद खरोंच से हमेशा शुरू करते हैं। ओह, इस जावास्क्रिप्ट! सरणी की लंबाई तत्वों की इसकी सही संख्या पर निर्भर करता है। इसलिए, यदि आप कितने होना चाहिए पता नहीं है, लेकिन आप सरणी के अंतिम तत्व को चालू करने की आवश्यकता है, यह आवश्यक रिकॉर्ड लागू करने के लिए है: v.length - 1।

भागों की सरणी पुनरावृति

अक्सर, लंबाई संपत्ति चक्र में भागों की सरणी पर पुनरावृति करने के लिए प्रयोग किया जाता है:

  • वर फल = [ «स्ट्रॉबेरी", "आड़ू," "apple" "केला"];
  • (वर मैं = 0; मैं fruits.lenght <; i ++) के लिए;
  • document.write (फल [i] + «...»)।

इस उदाहरण में ऐसा लगता है कि घटक लगातार की व्यवस्था की और पहले भाग है, जो सूचकांक शून्य रखती है के साथ शुरू कर रहे हैं। अगर ऐसा नहीं है, सरणी के प्रत्येक तत्व कॉल करने से पहले अगर यह परिभाषित किया गया है जाँच की जानी चाहिए।

चक्र भी कभी कभी घटकों प्रारंभ करने में प्रयोग किया जाता है।

वृद्धि हुई है और काट-छांट सरणी

मैं भाषा जावास्क्रिप्ट स्ट्रिंग का उपयोग कैसे एक सरणी में जोड़ने के लिए आश्चर्य है? सरणियों के साथ काम करने की प्रक्रिया में, लंबाई लंबाई स्वचालित रूप से गुणवत्ता, जिसके कारण हम अपने आप को इसके बारे में देखभाल करने के लिए है बेहतर बनाता है। यह एक विस्तार याद करने के लिए आवश्यक है - लंबाई संपत्ति के लिए केवल पढ़ने के लिए उपलब्ध नहीं है, लेकिन रिकार्ड के लिए। यदि गुणवत्ता लंबाई विशेषता मान जो वर्तमान के आकार देता है, सरणी एक पूर्व निर्धारित मूल्य के लिए कम है। किसी भी घटक है कि सूचकांक, झुकना, और उनके मूल्यों की नई रेंज में शामिल नहीं हैं, खो रहे हैं, भले ही आप बाद में वापस लौटें लंबाई - मान पुनर्स्थापित नहीं किया जा।

foo.length = 0: काफी बस के रूप में सरणी साफ़ करें।

इसके वर्तमान मूल्य से अधिक रन की लंबाई, की गुणवत्ता सरणी के अंत में नए, अज्ञात घटक है, जो यह इच्छित आकार की वृद्धि होगी हो जाएगा।

विवरण की एक सरणी हटाया जा रहा है

हटाने ऑपरेटर अपरिभाषित के लिए सरणी के घटक को इंगित करता है, लेकिन यह इस मामले में अस्तित्व के लिए जारी है। आप सरणी के लिए जावास्क्रिप्ट तत्व को दूर करने के लिए इतना है कि शेष भाग खाली जगह पर स्थानांतरित कर दिया चाहते हैं, आप तरीके सरणी की भविष्यवाणी करने से एक का उपयोग करने की आवश्यकता है। समाप्त घटक और एक विधि जोड़ () - - विधि Array.shift () एक पहले घटक, पॉप () को हटा एक घटक या कहीं भी सरणी सीमा होती है।

बहुआयामी सरणियों

ऐसा लगता है कि हम एक छोटे से, समझ में क्या जावास्क्रिप्ट। दो आयामी सरणियों - की जरूरत है कि आगे विचार किया जाएगा। क्या आपको याद है कि जावास्क्रिप्ट सरणियों अन्य मदों के घटक के रूप शामिल कर सकते हैं? यह सुविधा बहुआयामी सरणियों के उत्पादन के लिए प्रयोग किया जाता है। सरणियों की एक सरणी में घटकों पर जाने के लिए कोष्ठक दो बार लागू करने के लिए पर्याप्त है।

साहचर्य सरणियों

अब हम सीखें कि कैसे ट्रेडमार्क के लिए जावास्क्रिप्ट साहचर्य सरणियों उपयोग करता है। ऐसा करने के लिए हम सिद्धांत पर गौर करने की जरूरत है: साहचर्य सरणियों कभी कभी हैश तालिकाओं कहा जाता है। उन्हें धन्यवाद, सूचकांक पंक्तियों के बजाय लागू होते हैं। एक सरल ऑब्जेक्ट के गुणों के नाम के उपयोग की याद ताजा करती ऐसी संरचनाओं के उपयोग, लेकिन इस अवतार में, एक सरणी प्रारूप में काम का प्रदर्शन। चूंकि जावास्क्रिप्ट सरणियों साहचर्य से छेड़छाड़ का कोई तरीके हैं, वे सामान्य से बहुत कम बार किया जाता है। ऐसा लगता है कि वे अभी भी डेटा भंडारण के लिए उपयोगी हो सकता है और भागों, जो पहुँचा जा जाएगा के भंडारण को आसान बनाने में कर सकते हैं।

आउटपुट सरणी

और अब हम जावास्क्रिप्ट प्रणाली में अध्ययन करेगा? संवाद बॉक्स (स्क्रीन पर) के उत्पादन सरणी, साथ ही सरणी घटकों के उत्पादन मूल्यों।

कार्यक्रम आप सभी घटकों के मूल्यों को प्रदर्शित करना चाहते हैं, तो इसके लिए निर्देश लागू करने के लिए सुविधाजनक है। दिलचस्प बात यह है सरणी सूचकांक के घटक के रूप में एक ही समय में उपयोग के लिए चर-काउंटर नियम।

सफाई

आदेश जावास्क्रिप्ट की एक सरणी फिल्टर करने के लिए है, तो आप इसकी लंबाई रीसेट करने की आवश्यकता:

  • वर myArray = [1, 2, 5, 23];
  • myArray.length = 0।

निम्नलिखित गंतव्य स्पष्ट () के कार्यान्वयन, एक रूपरेखा, जावास्क्रिप्ट प्रोटोटाइप में पता चलता है:

  • स्पष्ट: function () {;
  • this.length = 0;
  • इस वापसी;
  • }।

जोड़ा जा रहा है और घटकों को हटाने

ठीक है, हम आगे इस रोमांचक जावास्क्रिप्ट भाषा का पता लगाने के लिए जारी है। संभव के रूप में और हटाने और अन्य वस्तुओं के पारंपरिक गुण के रूप में एक ही तरह से जोड़ने के लिए सरणी तत्व। लेकिन वहाँ कुछ मतभेद हैं: सांख्यिक गुण गुणवत्ता लंबाई भिन्न हो सकते हैं जोड़ने, लेकिन गुण लंबाई के संशोधन में संख्यात्मक गुणवत्ता समाप्त किया जा सकता। सिद्धांत रूप में, सरणियों में स्थापित एल्गोरिथ्म के रूप में इस प्रकार है:

  • जब मैं की एक डिजिटल अज्ञात गुण जोड़ने, अगर लंबाई के बराबर या मैं से कम है, लंबाई i + 1 निर्धारित किया जाता है।
  • जब आप निम्न चरणों का पालन करने के लिए लंबाई की गुणवत्ता बदल: यदि सौंपा मूल्य शून्य से भी कम है, तो RangeError फेंकता है। सभी संख्यात्मक गुणवत्ता अनुक्रमित है कि नए लंबाई के बराबर है, और अधिक से अधिक कर रहे हैं को समाप्त करता है।

दरअसल हटाने जावास्क्रिप्ट सरणी तत्व सरल है। सब के बाद, यहां तक कि लंबाई की स्थापना, आप इसे से "अतिरिक्त" घटकों को दूर करने की जरूरत है। यह इस सफाई विकल्प सरणी से इस प्रकार है। चर एक नया खाली सरणी, जो भी कारण के लिए असाइन किया गया है, तो संतुष्ट नहीं थे, और यह वर्तमान पुनर्स्थापित करने के लिए आवश्यक है, इसकी गुणवत्ता शून्य का मान निर्दिष्ट करने के लिए पर्याप्त लंबाई है।

unshift तरीकों, पाली, पॉप और धक्का

तथ्य यह है कि सरणी के घटकों को मैन्युअल रूप से बदल रहे हैं के बावजूद, कई इस में निर्मित विधियों का उपयोग करने की सलाह देते हैं। यह इस अति सूक्ष्म अंतर गुणवत्ता का सही मूल्य और सरणी गुजरता में लंबाई की कमी की गारंटी देता है है। वैसे, सही लंबाई की गुणवत्ता घटकों की संख्या के अनुरूप होगा।

प्रक्रिया सरणी प्रेषित आइटम के अंत पुश करने के लिए ले जाता है। वापस पॉप प्रक्रिया अंतिम घटक देता है और उसे निकाल देता है।

लंबाई के नए मूल्य - आम तौर पर इंटरनेट एक्सप्लोरर में आठवें संस्करण के तहत unshift अपरिभाषित लौट सकते हैं, अन्य ब्राउज़र में। ताकि unshift से वापसी मान आशा है कि करने के लिए बेहतर नहीं।

सरणी के बीच में इसके अलावा और कुछ हिस्सों के उन्मूलन

आप जावास्क्रिप्ट की एक सरणी को नष्ट करना चाहते हैं, तो आप की जरूरत? यह ज्ञात है विधि एक हस्ताक्षर जोड़ Array.prototype.splice है।

उन्होंने कहा कि सरणी deleteCount घटकों से निकाल लेता है, सूचकांक शुरुआत के साथ शुरू किया गया। आप एक से अधिक दो तर्क पार कर लेते हैं, सरणी में बाद के सभी तर्क नष्ट के स्थान पर व्यवस्थित कर रहे हैं। तो शुरुआत शून्य से है, सूचकांक, जिस पर फिर से शुरू करने वापसी लंबाई के बराबर होना + शुरू कर देंगे। दूरदराज के तत्वों की सरणी की ओर लौटने जगह लेता है।

वास्तव में, जोड़ पद्धति का उपयोग करके, यह संभव एक सरणी के मध्य से घटकों हटाने या सरणी में कहीं भी किसी भी संख्या को जोड़ने के लिए है।

सबसे सरल अवतार में, यदि यह आवश्यक है मैं सूचकांक के साथ घटक को दूर करने, सरणी मापदंडों मैं और 1 के साथ जोड़ विधि अनुरोध करना होगा।

सिद्धांत रूप में, जोड़ विधि में दूसरा विकल्प अनिवार्य नहीं है, लेकिन प्रत्येक ब्राउज़र के लिए एक तर्क के साथ समारोह का व्यवहार भिन्न है।

उदाहरण के लिए, फायरफॉक्स, पिछले रूपों में ओपेरा में, सरणी के अंत से पहले सभी विवरण सफारी और क्रोम में निकाल दिया जाएगा।

कोई भी घटक IE में समाप्त हो रहा है। पहले बदलाव के ओपेरा के व्यवहार भविष्यवाणी करना असंभव है - सूचकांक शुरुआत के साथ एक आइटम को हटा दिया जाएगा - 1. इसलिए यह हमेशा जरूरी है में इस विधि में कम से कम दो घटकों संचारित करने के लिए।

कुंजी

बेशक, जावास्क्रिप्ट सीखने, साहचर्य सरणियों, जैसा कि पहले उल्लेख के रूप में, आप भी अनदेखी नहीं की जानी चाहिए। यह जानकारी (डेटा स्टोर करने के लिए इंटरफ़ेस), जो फार्म "(कुंजी, मूल्य)" और साथ ही हटाया जाना और कुंजी युग्म की खोज के रूप में, समर्थन की एक जोड़ी जोड़ने के संचालन की एक जोड़ी को बचाने के लिए अनुमति देता है की एक सार दृश्य है:

- खोजें (कुंजी)।

- सम्मिलित करें (मान, कुंजी)।

- निकालें (कुंजी)।

माना जाता है कि एक साहचर्य सरणी में समान कुंजी के साथ दो जोड़े नहीं बचाने के लिए कर सकते हैं। k + vv के एक जोड़े में कुंजी कश्मीर के साथ जुड़े मूल्य है। शब्दार्थ और यहां इस तरह के सरणियों के विभिन्न कार्यान्वयन में ऊपर से संचालित होने वाले अलग हो सकता है।

इस प्रकार, मिल आपरेशन (key) किसी कुंजी, या एक विशेष वस्तु यूएनडीईएफ के साथ जुड़े एक मान देता है, जिसका अर्थ है कि मूल्य किसी खास कुंजी, ऑफ़लाइन के साथ जुड़े। दो अन्य कार्यों (के बारे में है कि क्या आपरेशन सफल रहा था डेटा को छोड़कर) नहीं लौटाते हैं।

आम तौर पर, इंटरफ़ेस, साहचर्य सरणी जो एक सरल सरणी के रूप में माना जाता है, जिसमें के रूप में सूचकांक लागू किया जा सकता केवल नहीं पूर्णांक संख्या लेकिन अन्य प्रकार के और मूल्यों के संदर्भ में - उदाहरण के लिए, लाइनों।

संयोग से, इस तरह के सरणियों के लिए समर्थन इलाज कर रहे हैं इस तरह के PHP, पर्ल, रूबी, अजगर, Tcl जावास्क्रिप्ट और दूसरों के रूप में कई उच्च स्तरीय प्रोग्रामिंग भाषाओं देखते हैं। भाषाओं की है कि कोई भी अंतर्निहित टूल साहचर्य सरणियों के साथ काम करने के लिए, पुस्तकालयों के रूप में प्रतीति के एक विशाल संख्या बनाया।

एक साहचर्य सरणी का एक उदाहरण एक टेलीफोन निर्देशिका के रूप में काम कर सकते हैं। इस अवतार में, मूल्य "एफ सेट किया गया है आईओ + ई ", और कुंजी - टेलीफ़ोन नंबर। एक फ़ोन नंबर एक मास्टर है, लेकिन जब कोई व्यक्ति अनेक संख्या के मालिक हैं कर सकते हैं।

एसोसिएटेड विस्तार

ऐसा लगता है कि सबसे प्रसिद्ध एक्सटेंशन में निम्न शामिल हैं:

  • प्रत्येक - «पैदल दूरी पर» सभी पर जोड़े को बचाता है।
  • साफ - सभी प्रविष्टियों को हटाने के लिए।
  • MIN - सबसे कम महत्वपूर्ण मूल्य के साथ एक जोड़ी खोजने के लिए।
  • मैक्स - सबसे बड़ा कुंजी मान के साथ एक जोड़ी खोजने के लिए।

पिछले दो मामलों में आप कुंजी पर की तुलना प्रभाव संकेत दिया की जरूरत है।

साहचर्य सरणियों की प्राप्ति

वहाँ साहचर्य सरणी के कई अलग अलग कार्यान्वयन हैं। सबसे आम कार्यान्वयन एक सरल सरणी जिसका घटकों जोड़े (मूल्य कुंजी) कर रहे हैं के आधार पर हो सकता है। खोज कार्यों में तेजी लाने के लिए, आप एक कुंजी खोज द्वारा सरणी के घटकों की व्यवस्था और का उपयोग कर लागू कर सकते हैं एक द्विआधारी खोज। लेकिन यह रूप में "धक्का" करने के लिए सरणी घटक है कि एक खाली सेल में छपी एक ताजा रिकॉर्ड पैक करने के लिए की आवश्यकता होगी, एक नया जोड़ी को जोड़ने के लिए आवश्यक समय की मात्रा में वृद्धि होगी।

सबसे अच्छा ज्ञात कार्यान्वयन, अलग अलग खोज के पेड़ पर आधारित है। उदाहरण के लिए, एक ठेठ वाचनालय एसटीएल C ++ भाषा ट्रेलरों नक्शे में काले और महोगनी के आधार पर कार्यान्वित किया जाता है। रूबी में, शैलियों, Tcl अजगर हैश तालिकाओं का एक प्रकार का उपयोग करता है। अन्य कार्यान्वयन कर रहे हैं।

सामान्य तौर पर, प्रत्येक कार्यान्वयन अपने स्वयं के फायदे और नुकसान हैं। यह महत्वपूर्ण है कि सभी तीन कार्यों के औसत पर पूरा किया गया, और के बारे में (लॉग एन) अति सूक्ष्म अंतर का सबसे बुरा की अवधि में, जहां n - वर्तमान संख्या बराबर बचाने के लिए। (काले और लाल के पेड़ सहित) ठोस खोज के पेड़ के लिए, इस हालत संतुष्ट है।

यह ज्ञात है कि हैश तालिकाओं के आधार पर कार्यान्वयन में, औसत समय डी (1) है, जो खोज के पेड़ के आधार पर कार्यों में से बेहतर है के रूप में परिभाषित किया गया है। सबसे खराब स्थिति में सम्मिलित करें कार्रवाई समय, के रूप में हे (एन) निरूपित किया: बेशक, यह अलग आपरेशन के एक उच्च गति प्रदर्शन की गारंटी नहीं है। सम्मिलित करें प्रक्रिया में लंबा समय जब कर्तव्य अनुपात उच्चतम बिंदु तक पहुँच जाता है के लिए किया जाता है, और हैश तालिका सूचकांक फिर से संगठित करने की आवश्यकता है।

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

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 hi.atomiyme.com. Theme powered by WordPress.