[संगीत बजाना] डौग लॉयड: अब तक तो हम बूढ़े हो वेब प्रोग्रामिंग में पेशेवरों, है ना? और हम कई कवर किया है व्यक्तिगत वीडियो में भाषाओं। और अब एक और, जावास्क्रिप्ट करते हैं। पहले अच्छी खबर है, जावास्क्रिप्ट एक आधुनिक प्रोग्रामिंग है जिसका पीएचपी बहुत पसंद है भाषा वाक्य रचना, सी से प्राप्त होता है तो यह है कि शुरू करने के लिए एक अच्छी जगह है। यह रूप में अच्छी तरह से, पीएचपी के रूप में के रूप में पुराने के बारे में है लगभग 20 साल के आसपास किया गया है। यह चारों ओर आविष्कार किया गया था PHP के रूप में एक ही समय। और जावास्क्रिप्ट सुंदर वास्तव में है उपयोगकर्ता अनुभव के लिए मौलिक वेब की। वास्तव में, देखते हैं तीन भाषाओं कि मैं ऊपर बना एक तरह से कह सकते हैं कि बातचीत के उपयोगकर्ता अनुभव वेबसाइट के साथ, एचटीएमएल, सीएसएस, और जावास्क्रिप्ट। और इसलिए अब हम एक बात करते हैं जावास्क्रिप्ट के बारे में थोड़ा सा। बुरी खबर है, हालांकि, के साथ जावास्क्रिप्ट है वह खुद के लिए नियमों का एक बहुत है कि सेट, और फिर यह उन्हें टूट जाता है। और जावास्क्रिप्ट वास्तव में हो सकता है एक तरह से जानने के लिए चुनौतीपूर्ण है, यह सी के विपरीत है, क्योंकि और बहुत संरचित कर रहे हैं, जो पीएचपी, और बहुत कठोर नियम है बातें कैसे काम कर सकते हैं। जावास्क्रिप्ट प्रकार है का इतना लचीला हो गया हो सकता है कि बातें करने के लिए नहीं जा रहे हैं , हम उन्हें उम्मीद तरह से काम और हो सकता है कि हम वास्तव में नहीं सीख सकते हैं हमारी पहली प्रोग्रामिंग भाषा एक जावास्क्रिप्ट के रूप में। तो शायद ऐसा नहीं होता है, क्योंकि खुद को किसी भी नियम निर्धारित करते हैं, और यह सच नहीं है अच्छा कोडिंग के प्रति दृष्टिकोण को लागू। लेकिन अब हमें उम्मीद है कि विकसित किया है कुछ अच्छी कोडिंग वाला, और इसलिए हम प्रवेश करने शुरू कर सकते हैं जावास्क्रिप्ट में एक छोटा सा। उद्घाटन के समान जावास्क्रिप्ट लिखने के लिए एक डॉट सी विस्तार के साथ एक सी फाइल अप या एक डॉट पीएचपी विस्तार के साथ एक PHP फ़ाइल, हम सब करने की ज़रूरत एक फ़ाइल को खोलने के लिए है डॉट जे एस फ़ाइल एक्सटेंशन के साथ। हम किसी भी विशेष है की जरूरत नहीं है हम जैसे सीमांकक पीएचपी में किया था। कोण की तरह वह ब्रैकेट प्रश्न चिह्न पीएचपी हम उस से, जिस तरह से करने के लिए इस्तेमाल कर रहे हैं कि हमारे पास क्या है कि हम अपने ब्राउज़र बताओ जावास्क्रिप्ट सहित द्वारा होता है एक एचटीएमएल टैग में यह, और हम के बारे में थोड़ा देखेंगे कैसे बस एक पल में है कि क्या करना है। में आता है कि दूसरी बात यह है अलग जावास्क्रिप्ट, हालांकि, यह ग्राहक की ओर चलाता है। तो PHP के साथ याद करते हैं कि हम वास्तव में कभी नहीं देख सकता एक वेबसाइट को रेखांकित किया कि पीएचपी। हम कभी देखी हैं पेज स्रोत, हम केवल होगा था कि एचटीएमएल देखना कि पीएचपी द्वारा उत्पन्न। लेकिन जावास्क्रिप्ट ग्राहक की ओर से चलाता है। आपका जावास्क्रिप्ट आपके कंप्यूटर पर चलाता है। आप क्या कर सकते हैं और यही कारण है बातें ब्लॉकर्स जोड़ना चाहते। है ना? विज्ञापन अवरुद्ध आमतौर द्वारा किया जाता है जावास्क्रिप्ट के सभी की हत्या कि एक विशेष वेबसाइट पर चल रहा है। और यह करने के लिए होता है, क्योंकि अपनी मशीन ग्राहक पक्ष पर चलाने के लिए, आप बस रोक सकता पूरी तरह से चलाने के लिए जावास्क्रिप्ट। वह भी जब आप का उपयोग का मतलब है कि जावास्क्रिप्ट भी शामिल है कि एक वेबसाइट है, आप जावास्क्रिप्ट स्रोत भेज दिया है अपने HTTP प्रतिक्रिया के हिस्से के रूप कोड ग्राहक के लिए वे यह अनुरोध करते हैं। और तो तुम नहीं हो सकता जावास्क्रिप्ट का उपयोग करना चाहते हैं वास्तव में संवेदनशील बातें करने के लिए गुजर जानकारी की तरह उपयोगकर्ताओं के पासवर्ड के बारे में वापस और आगे है, क्योंकि वे वास्तव में कर रहे हैं स्रोत कोड के सभी प्राप्त करने के लिए जा रहा है, उत्पन्न होता है कि न सिर्फ एचटीएमएल, इस तरह कहते हैं पीएचपी के मामले में हो जाएगा। तो आप कैसे करते हैं हम जावास्क्रिप्ट शामिल हमारे HTML में के साथ शुरू करने के लिए? सीएसएस के समान है, ठीक है, वास्तव में, हम यहाँ इसे कैसे करते हैं की तरह है। सीएसएस के साथ हम शैली टैग नहीं है। और उन शैली टैग के अंदर, हम एक सीएसएस शैली पत्रक परिभाषित कर सकते हैं। इसी जावास्क्रिप्ट के साथ हम स्क्रिप्ट टैग खोल सकते हैं, एक और एचटीएमएल टैग हम नहीं हमारे HTML वीडियो में के बारे में बात करते हैं, और में जावास्क्रिप्ट लिखने उन स्क्रिप्ट टैग के बीच। इसके अलावा, हालांकि, जैसे सीएसएस, हम सीएसएस फ़ाइलों के बाहर में कड़ी जा सकता है और हमारे कार्यक्रम है कि रास्ते में उन्हें खींच। सीएसएस के साथ हम भी कर सकते हैं जावास्क्रिप्ट के साथ, मुझे माफ करना हम भी स्रोत निर्दिष्ट कर सकते हैं स्क्रिप्ट टैग की विशेषता जावास्क्रिप्ट में लिंक करने के लिए अलग है, इसलिए यदि आप नहीं करते में यह लिखने के लिए है स्क्रिप्ट टैग के बीच, हम का उपयोग करने में लिंक कर सकते हैं कि स्क्रिप्ट टैग के रूप में अच्छी तरह से। और बस सीएसएस जहां के साथ मामले के साथ के रूप में हम यह शायद था कि सिफारिश आपके हित में लिखने के लिए मामले में एक अलग फाइल में अपने सीएसएस आप इसे बदलने की जरूरत है, इसी तरह हम अनुशंसा करते हैं आप अपने लिखने कि अलग फ़ाइलों में जावास्क्रिप्ट और स्क्रिप्ट टैग स्रोत का उपयोग अपने जावास्क्रिप्ट टाई करने के लिए विशेषता अपने HTML, अपने वेब पेज में। इसलिए जावास्क्रिप्ट चर, हम करेंगे यहां वाक्य रचना के बारे में बात शुरू करते हैं। और हम के माध्यम से जाना होगा जल्दी से इस तरह का, हम इतने, पीएचपी में इस किया है क्योंकि यह सब बहुत परिचित होना चाहिए। इसलिए जावास्क्रिप्ट में चर रहे हैं चर PHP के लिए बहुत समान। वहाँ कोई प्रकार विनिर्देशक है, और आप एक चर पेश करते हैं, आप वर कीवर्ड के साथ यह उपसर्ग। पीएचपी में हम कुछ करना होगा इस तरह, डॉलर के हस्ताक्षर एक्स। हमने संकेत है कि कैसे एक चर, लेकिन नहीं, हम प्रकार का उल्लेख नहीं है चर का सब पर। हम जैसे कुछ कहेंगे डॉलर के हस्ताक्षर एक्स पीएचपी में 44 के बराबर होती है। हम क्या कर रहे थे, तो जावास्क्रिप्ट में एक ही बात है, हम वर x 44 के बराबर होती है कहेंगे। तो वर हमारे रास्ते की तरह है एक चर शुरू करने की। यही कारण है कि शायद थोड़ा और अधिक सहज है सिर्फ डॉलर के हस्ताक्षर चर से। फिर, के बाद से वहाँ कोई डेटा प्रकार, हम यह कर सकता है किसी भी डेटा प्रकार के साथ, तार, कुछ और सब वर होगा। की सशर्त, हमारे सभी सी और पीएचपी से पुराने दोस्तों अभी भी उपलब्ध हैं, इसलिए हम यदि है, अगर नहीं तो, वरना, स्विच और सवाल मार्क पेट के। यह रूप में लचीला शेष स्विच पीएचपी में था, लेकिन आप कर रहे हैं इन सभी का अब तक से परिचित। और छोरों हैं इसी प्रकार के साथ जबकि पुराने पसंदीदा, जबकि करते हैं, और हमें करने के लिए अभी भी उपलब्ध है। तो पहले से ही हम में से एक बहुत कुछ पता है बुनियादी बातों की बुनियादी जावास्क्रिप्ट प्रकार अभी काफी एक सा होने के आधार पर अब सी और पीएचपी के बारे में ज्ञान की। क्या जावास्क्रिप्ट में कार्यों के बारे में? खैर, इसी तरह हर समारोह है PHP के लिए समारोह कीवर्ड के साथ शुरुआत की। आप समारोह का कहना है, और फिर आप अपने समारोह को परिभाषित करने के लिए शुरू। एक छोटे से अलग क्या है जावास्क्रिप्ट के बारे में, हालांकि करने की क्षमता है क्या एक गुमनाम समारोह कहा जाता है। तो अगर आप कार्यों को परिभाषित कर सकते हैं एक ऐसा नाम नहीं है। यह कुछ हम है वास्तव में पहले नहीं देखा है। हम वास्तव में अवधारणा का उपयोग करेंगे एक गुमनाम समारोह की थोड़ी देर बाद इस में वीडियो, यह होगा, क्योंकि इस संदर्भ में एक छोटे से अधिक समझ बनाने के लिए हम एक विशेष स्थिति में यह देखने के लिए जब कि मैं यहाँ तैयार की जाती है। लेकिन चलो बस एक नजर डालते हैं क्या एक साधारण जावास्क्रिप्ट पर समारोह की तरह लग सकता है। तो मैं आगे चला गया है और मेरी CS50 आईडीई को खोला और मैं पहले से ही अपाचे भाग लिया अपने सर्वर चल रहा शुरू करने के लिए। और मैं इस फ़ाइल है home.html बुलाया खुला। और मैं यहाँ एक छोटा सा में ज़ूम करेंगे। और मूल रूप से, आप देख सकते हैं Home.html बटनों में से सिर्फ एक गुच्छा है। और मैं यहाँ शीर्ष पर दावा कर रहा हूँ इस जावास्क्रिप्ट अनुभाग है कि सामग्री। तो बटन का एक गुच्छा यहाँ है, लेकिन इन बटनों वास्तव में क्या करते हैं? खैर, हम अपने आईईडी के लिए सिर पर हूँ, और मैं यहाँ खोलने home.html है। बिलकुल शुरूआत में, मैं जोड़ने हूँ जहां यहाँ है मेरे जावास्क्रिप्ट स्रोत फ़ाइलों के सभी में। है ना? इसलिए मुझे लगता है, anonymous.js, clock.js है मैं स्रोत विशेषता का उपयोग कर रहा हूँ स्क्रिप्ट टैग की फ़ाइल में लिंक करने के लिए। इसलिए मैं नहीं लिखा है किसी भी सीधे इस फ़ाइल में जावास्क्रिप्ट, लेकिन मैं में खींच लिया है सब जावास्क्रिप्ट मैं अलग से लिखा है। और हम यहाँ, यह नीचे स्क्रॉल यदि चाहिए सब कुछ परिचित देखो नई वाक्य रचना का एक छोटा सा के साथ। हम शीर्षक टैग के लिए यहाँ है कार्य करता है और फिर एक बटन। मैं एक प्रकार का बटन है कि एक इनपुट है और जाहिरा तौर पर मैं इसे क्लिक करते हैं, मैं कुछ कॉल करने के लिए जा रहा हूँ चेतावनी तारीख कार्य करते हैं। और यह है कि हम एक तरह से मिश्रण कर सकते हैं कि कैसे है जावास्क्रिप्ट और HTML का एक छोटा सा। वे वास्तव में बहुत अच्छी तरह से खेलने एक साथ, और तो जाहिरा तौर पर जब मैं इस बटन पर, मैं जा रहा हूँ क्लिक करें कुछ समारोह चेतावनी तारीख फोन करने के लिए। और इसी प्रकार मैं व्यवहार में परिभाषित किया गया है अन्य सभी बटन के लिए है कि कि home.html पेज पर हैं, हम लौटने रखेंगे जो इस वीडियो के दौरान करने के लिए। लेकिन ऊपर वापस जाओ यहाँ और एक नज़र रखना clock.js में, जो है जावास्क्रिप्ट फ़ाइल है कि मैं यह पहला समारोह है कि लिखा हम पर एक नज़र लेने के लिए जा रहे हैं। आप देख सकते हैं, मैं अपने जावास्क्रिप्ट शुरू कीवर्ड समारोह के साथ कार्य, और मैं इस एक एक दिया है नाम है, यह चेतावनी तिथि कहा जाता है। वहाँ के अंदर, मैं जाहिरा तौर पर एक बनाने आज की तारीख नामक नया स्थानीय चर। और मैं आवंटित करने के लिए जा रहा हूँ एक नई तारीख के लिए एक समान। और हम में से एक बहुत में मिल सकता है एक तारीख क्या है के रूप में विस्तार, और वास्तव में जावास्क्रिप्ट तो है बड़ा है कि हम संभवतः नहीं कर सकते एक वीडियो में सब कुछ कवर। लेकिन, यह जा रहा है कहने के लिए पर्याप्त एक डेटा आइटम मुझे वापस करने के लिए कि आज की तारीख और समय encapsulates। मैं मैं कर रहा हूँ कि एक चर में है कि संग्रहीत कर रहा हूँ जाहिरा तौर पर आज की तारीख सचेत करने के लिए जा रहा है। खैर, क्या सतर्क करता है जैसे आज की तारीख दिखते हैं? के ही फाइल पर एक नज़र रखना ब्राउज़र विंडो में पीठ पर। तो फिर, इस बटन है कि मैं , इस नाम समारोह के लिए करार किया है। और मैं वहाँ इसे क्लिक करें और देखो यह क्या किया, यह सतर्क कर दिया है। यह कह बॉक्स के इस तरह के ऊपर popped मुझे वर्तमान समय जाहिर है, यह है कि यह 4 नवंबर है सुबह 10:43:43। और अब मैं इसे फिर से क्लिक करते हैं यह सही है, बाद में कुछ ही सेकंड है? तो यह है कि यह सब कार्य करता है। मैं इस बटन को क्लिक करते हैं, यह मेरे लिए एक चेतावनी संदेश को चबूतरे। तो सच में वहाँ नहीं है कार्य करने के लिए बहुत ज्यादा कि, पीएचपी से अलग है नई वाक्य रचना का सिर्फ एक छोटा सा कि जावास्क्रिप्ट के साथ काम करने के साथ आता है। जावास्क्रिप्ट में सारणियों हैं बहुत सीधा। एक सरणी की घोषणा करने के लिए, आप का उपयोग वर्ग कोष्ठक वाक्य रचना हम पीएचपी से परिचित हो। और पीएचपी के समान है, हम यह भी डेटा प्रकार के मिश्रण कर सकते हैं। तो इस सरणी, दोनों इन सरणियों का होगा पूरी तरह से वैध जावास्क्रिप्ट हो। सभी पूर्णांकों है कि एक, और एक है कि विभिन्न प्रकार के डेटा को मिलाया जाता है। बहुत कुछ अलग क्या है जावास्क्रिप्ट में, हालांकि? यही कारण है कि एक वस्तु की धारणा है। तो शायद आप के बारे में सुना है ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग। हम CS50 में इसके बारे में एक बहुत कुछ नहीं है लेकिन हम इसे का एक छोटा सा करना होगा यहां जावास्क्रिप्ट के संदर्भ में। अब जावास्क्रिप्ट क्षमता के लिए है एक वस्तु उन्मुख प्रोग्रामिंग के रूप में व्यवहार भाषा, लेकिन वह खुद को नहीं है विशेष रूप से एक वस्तु उन्मुख प्रोग्रामिंग भाषा। और इस बार फिर आता है पहले मैं यह क्यों कहा करने के लिए जानने के लिए बहुत चुनौतीपूर्ण हो सकता है अपनी पहली प्रोग्रामिंग के रूप में जावास्क्रिप्ट भाषा, यह नहीं है क्योंकि वास्तव में एक विशेष प्रतिमान फिट बैठते हैं। दूसरी ओर सी है एक कार्यात्मक प्रोग्रामिंग भाषा। हम चाहते हैं, कार्य कर रहे हैं बिग बॉस आदमी की तरह है, है ना? वे हुक्म क्या बाकी सब कुछ होता है। हम चर बदलना चाहते हैं, हम कार्यों कहते हैं। हम कार्यों के लिए बातें करते हैं। एक में, बजाय वस्तुओं उन्मुख भाषा पर आपत्ति, एक तरह से स्टार बन वस्तुओं और कार्यों माध्यमिक की तरह हो जाते हैं। लेकिन एक वस्तु, क्या है क्या एक वस्तु की इस धारणा है? खैर, यह मदद करता है, तो लगता है पहले प्रकार में इसके बारे में की एक सी संरचना या एक संरचना की तरह कि हम पहले के बारे में सीखा है। सी में, एक संरचना में शामिल क्षेत्र की एक संख्या है, और हो सकता है कि हम अब तक शुरू हो सकता है इन क्षेत्रों गुण कहते हैं। लेकिन गुण वास्तव में कभी नहीं ठीक है, अपने दम पर खड़े हैं? मैं एक कार के लिए एक संरचना को परिभाषित करते हैं दो निम्नलिखित के साथ इस तरह खेतों या गुण, एक एक कार के वर्ष के लिए पूर्णांक और एक अन्य एक 10 चरित्र कार के मॉडल के लिए स्ट्रिंग, मैं कुछ इस तरह कह सकते हैं मैं एक नया चर घोषणा कर सकते हैं प्रकार संरचना कार हर्बी की। और फिर मैं कुछ कह सकते हैं जैसे herbie.year, 1,963 के बराबर होती है और herbie.model बीटल के बराबर होती है। ठीक है। मैं में खेतों का उपयोग कर रहा हूँ संरचना के संदर्भ में, लेकिन मैं सिर्फ कभी नहीं कर सकता इस तरह से कुछ कहना है। है ना? मैं इस क्षेत्र के नाम का उपयोग नहीं कर सकते संरचना के स्वतंत्र। यह एक मौलिक बात की तरह है। खेतों जा रहा है तो सी संरचनाओं के लिए मौलिक गुण होने के लिए बहुत समान हैं जावास्क्रिप्ट वस्तुओं के लिए मौलिक। लेकिन क्या उन्हें बनाता है विशेष रूप से दिलचस्प वस्तुओं भी क्या हो सकता है वास्तव में जो कर रहे हैं कहा जाता है तरीकों, कार्यों के लिए सिर्फ एक फैंसी शब्द है कि वस्तु के लिए निहित के रूप में अच्छी तरह से कर रहे हैं। यह एक समारोह है तो ही हो सकता है कि एक वस्तु के संदर्भ में कहा जाता है। परिभाषित किया गया है कि केवल एक वस्तु इसकी के अंदर इस समारोह में, आप एक के बारे में सोचते हैं, तो संरचना, समारोह परिभाषित उन के अंदर परिभाषित किया गया है संरचना की सर्पाकार। तो यह केवल कुछ का मतलब संरचना करने के लिए। और कहा कि हम क्या कर रहे हैं की तरह है यहाँ वस्तुओं और तरीकों के साथ। हम कर रहे हैं जैसे कि यह मूल रूप से है एक समारोह को परिभाषित है कि केवल एक पर समझ में आता है विशेष वस्तु, और इसलिए हम वस्तु की एक विधि है कि कहते हैं। और हम उस फोन कभी नहीं कर सकते हैं वस्तु की स्वतंत्र समारोह, हम वर्ष या मॉडल नहीं कह सकता बस की तरह सी में संरचना के स्वतंत्र तो कार्यात्मक प्रोग्रामिंग मानदंड कुछ इस तरह दिखेगा। समारोह और फिर तुम पास जब एक पैरामीटर के रूप में वस्तु में। एक वस्तु उन्मुख प्रोग्रामिंग में भाषाओं, इस तरह का हो जाता है रूप से फ़्लिप, और हम के बारे में सोचना होगा यह object.function यह पसंद है। तो यह है कि डॉट का यह प्रकार ऑपरेटर फिर से जिसका अर्थ यह संपत्ति किसी प्रकार का है कि या वस्तु ही की विशेषता। लेकिन यह क्या एक वस्तु है उन्मुख प्रोग्रामिंग भाषा एक समारोह बनाने के लिए कर सकता है , फिर से, एक विधि पर जो फोन सिर्फ एक विशेष शब्द को एक समारोह के लिए है एक उद्देश्य है कि करने के लिए निहित है। यह क्या है कि वाक्य रचना की तरह लग सकता है। और इसलिए हम में से कुछ देखने के लिए शुरू करेंगे जावास्क्रिप्ट के संदर्भ में यह। तुम भी एक वस्तु के बारे में सोच सकते हैं एक तरह से एक साहचर्य सरणी की तरह, हम पीएचपी से परिचित रहे हैं। एक साहचर्य सरणी की अनुमति देता है याद रखें हमें इसके बजाय, महत्वपूर्ण मूल्य जोड़े के लिए है की अनुक्रमित 0, एक, दो, तीन, होने और हम सी से करने के लिए इस्तेमाल कर रहे हैं और इतने पर की तरह सरणियों। साहचर्य arrays नक्शा कर सकते हैं ऐसे पीएचपी वीडियो के रूप में शब्द, हम के बारे में बात कर रहे थे पिज्जा की टॉपिंग। और इसलिए हम एक सरणी था कहा जाता पिज्जा, और हम था पनीर एक महत्वपूर्ण था और $ 8.99 था मूल्य, और फिर पेपरोनी एक महत्वपूर्ण था, $ 9.99 इतने पर एक मूल्य था, और। और इसलिए हम भी एक के बारे में सोच सकते हैं एक साहचर्य के लिए एक तरह से इसी तरह की आपत्ति सरणी। यहाँ और इसलिए इस वाक्य रचना एक नई वस्तु पैदा होगा दो के साथ बुलाया हर्बी इसके अंदर का गुण। मूल्य 1963 सौंपा है, जो वर्ष, स्ट्रिंग सौंपा है, जो और मॉडल, बीटल। और मैं उपयोग कर रहा हूँ कि यहाँ नोटिस जावास्क्रिप्ट में एक उद्धरण। आप एक या दो उद्धरण का उपयोग कर सकते हैं जब तुम तार के बारे में बात कर रहे हैं। यह सिर्फ पारंपरिक है मामला यह है कि सबसे अधिक बार जब आप जावास्क्रिप्ट लिख रहे हैं, आप सिर्फ एक उद्धरण का उपयोग करें। लेकिन मैं यहाँ डबल उद्धरण का उपयोग करें, और कर सकता है उस के रूप में अच्छी तरह से पूरी तरह से ठीक हो जाएगा। तो कैसे में याद पीएचपी हम इस धारणा थी हमें की अनुमति होगी कि प्रत्येक पाश के लिए एक से महत्वपूर्ण मूल्य के सब से अधिक पुनरावृति करने के लिए एक साहचर्य के जोड़े सरणी, क्योंकि हम पुनरावृति को यह क्षमता नहीं थी 0 के माध्यम से, एक, दो, तीन, चार, और इसी तरह? जावास्क्रिप्ट, बहुत कुछ इसी तरह की है लेकिन यह प्रत्येक पाश के लिए एक नहीं कहा जाता है यह छोरों में लिए कहा जाता है। इसलिए मुझे लगता है की तरह मुझे कहा कि अगर इस, वस्तु में वर कुंजी के लिए, कह रही है कि करने के लिए एक तरह से इसी तरह की है कुछ के रूप में प्रत्येक कुछ करने के लिए। लेकिन मैं कर रहा हूँ यहाँ सब पुनरावृति है मेरा उद्देश्य की कुंजी के सभी के माध्यम से। और घुंघराले के अंदर वहाँ ब्रेसेस, मैं करूंगा उल्लेख करने के लिए वस्तु वर्ग कोष्ठक कुंजी का उपयोग कि कुंजी स्थान पर मूल्य के लिए। वैकल्पिक रूप से, वहाँ है यहां तक ​​कि एक और दृष्टिकोण। मैं तो बस केवल बारे में परवाह है मूल्यों, मैं, वस्तु की कुंजी के लिए कह सकते हैं और बस के अंदर कुंजी का उपयोग करें। तो वस्तु में वर कुंजी के लिए, मेरे पास है वस्तु वर्ग कोष्ठक का उपयोग करने के लिए लूप के अंदर कुंजी। वस्तु का वर कुंजी के लिए, मैं कर सकता हूँ सिर्फ पाश अंदर कुंजी का उपयोग करें, मैं तो बस विशेष रूप से कर रहा हूँ क्योंकि वहाँ मूल्यों के बारे में बात कर रही है। तो चलो शायद एक ले चलो अंतर को देखो बस जल्दी से आप को दिखाने के लिए चार के बीच का अंतर का एक बहुत विशिष्ट साथ में और के लिए हम यहाँ है जो सरणी, सप्ताह सरणी। तो मैं एक नई सरणी खोजने के लिए है मैं सात तार के साथ भरा है कि, सोमवार मंगलवार बुधवार, बृहस्पतिवार शुक्रवार शनिवार रविवार। और अब मैं पुनरावृति करना चाहते हैं इस सरणी के माध्यम से, कुछ जानकारी को छापता है। मैं पाश में के लिए एक का उपयोग करते हैं जानकारी बाहर मुद्रित करने के लिए, तुम्हें पता है मैं लेने जा रहा हूँ क्या लगता है? ठीक है, चलो एक नज़र रखना। और हम पर कूदने से पहले अपने ब्राउज़र खिड़की के पास, सिर्फ इतना पता है कि console.log एक की तरह है जावास्क्रिप्ट में एक प्रिंट एफ करने का तरीका। लेकिन सांत्वना क्या है? खैर, कि हम जा रहे हैं अब ठीक है पर एक नज़र रखना जाने के लिए। ठीक है, तो हम यहाँ वापस आ गए हैं मेरी ब्राउज़र विंडो में, और मैं खोलने के लिए जा रहा हूँ मेरी डेवलपर टूल अप। फिर, मैं सिर्फ F12 मार रहा हूँ डेवलपर उपकरण को खोलने के लिए। और कहा कि यहां पर नोटिस शीर्ष मैं सांत्वना चुन लिया है। तो यह धारणा है एक डेवलपर सांत्वना की, और यह करने के लिए हमें की अनुमति देगा , जानकारी का प्रिंट आउट प्रकार के टर्मिनल की तरह है, लेकिन आप एक छोटे से बाद देखेंगे के रूप में, हम भी जानकारी टाइप कर सकते हैं हमारे वेब पेज के साथ बातचीत करने के लिए। मैं यहाँ एक छोटा सा में ज़ूम करने के लिए जा रहा हूँ और मैं अब परीक्षण के लिए पर क्लिक कर रहा हूँ। और चार test-- में मैं वाला नहीं हूँ अभी आप इसके लिए कोड दिखाने के लिए, लेकिन आप अगर यह मिल जाएगा आप स्रोत कोड डाउनलोड कि इस video-- साथ जुड़ा हुआ है सिर्फ इतना है कि पाश में के लिए है हमने देखा है कि सिर्फ एक दूसरी पहले स्लाइड पर। इसलिए मैं जा क्लिक कर रहा हूँ कि बटन, और यहाँ पर, यहाँ में बाहर मुद्रित किया गया है क्या सांत्वना, 0, एक, दो, तीन, चार, पांच, छह। मैं जानकारी के प्रिंट आउट नहीं किया उन सरणी स्थानों के अंदर, मैं पाश में के लिए एक प्रयोग किया जाता है। और लूप के शरीर के अंदर, मैं बस कुंजी आपत्ति नहीं कुंजी बाहर मुद्रित। लेकिन अब मैं अपने सांत्वना स्पष्ट है, और मैं यदि परीक्षण के लिए करने के लिए स्विच, और परीक्षण के चार मैं मैं पाश के लिए प्रयोग करते हैं बजाय और चाबी बाहर प्रिंट, मुझे लगता है कि क्लिक करते हैं, अब मैं जा रहा हूँ मेरा उद्देश्य के अंदर वास्तविक तत्व या इस मामले में मेरी सरणी। सप्ताह के दिनों के अपने सरणी। मैं सोमवार से बाहर मुद्रित मंगलवार बुधवार। तो यह है कि अंतर के बीच है एक के लिए पाश में, जो बाहर प्रिंट तुम सिर्फ कुंजी का उपयोग करता है, तो सिर्फ चाबी लूप के शरीर के अंदर, और पाश, जो प्रिंट के लिए एक मूल्यों बाहर आप बस का उपयोग करता है, तो पाश के शरीर के अंदर कुंजी। ठीक है, हम कैसे अब तक शुरू कर दिया तार जुटना और शायद मिश्रण प्रक्षेप के साथ कुछ चर जैसे हम पीएचपी में क्या कर रहे थे? खैर, हम बहुत परिचित हो पीएचपी से इस के साथ। यह हम प्रयोग कर इसे कैसे करना है डॉट ऑपरेटर तार जोड़ना। जावास्क्रिप्ट में, हालांकि, हम वास्तव में कुछ का उपयोग प्लस ऑपरेटर, जो बुलाया शायद यह भी एक छोटा सा और है सहज, है ना? हम एक गुच्छा जोड़ रहे हैं तार के साथ। तो चलो वापस चलें खत्म हो गया है और क्या यह देखना हम बाहर मुद्रित करने के लिए कोशिश कर रहे हैं मुद्रित होगा सप्ताह सरणी में जानकारी के सभी। यहां के तहत ऐसा ठीक है, स्ट्रिंग संयोजन के तहत, मैं दो विकल्प हैं, स्ट्रिंग इमारत V1 और उसके बाद स्ट्रिंग इमारत V2। और हम हम क्यों देखेंगे एक दूसरे में V2 की जरूरत है। लेकिन मैं कर रहा हूँ पर क्लिक करें स्ट्रिंग इमारत V1 है, जो हम थे कोड है बस पर एक नज़र लेने, pluses के सभी के साथ console.log। चलो इस प्रिंट यदि चलो देखते हैं हम उम्मीद करते हैं कि क्या बाहर। सोमवार, सप्ताह के दिन संख्या 01 है मंगलवार सप्ताह के दिन संख्या 11 है। खैर, मैं क्या कर रहा था मिल नहीं था ऐसा करने के लिए यह सोमवार दिन संख्या है बाहर मुद्रित करने के लिए एक, मंगलवार दिन नंबर दो है। लेकिन यह मैं कर रहा हूँ की तरह लगता है हमेशा से एक को छापता है। खैर, ऐसा क्यों है? खैर, यह पता चला है, फिर से विचार करना यहाँ कोड के इस छोटे से टुकड़ा पर। हम साथ साथ प्रयोग कर रहे हैं कि नोटिस दो अलग-अलग संदर्भों में ऑपरेटर। और यहाँ तो जहां शायद चीजें है हम किस तरह का कह दिया गया है कि, ओह, यह तो बहुत अच्छी बात है। हम अब और डेटा प्रकार के साथ सौदा नहीं है। लेकिन यहाँ जहां तथ्य है हम डेटा प्रकार खो देते हैं वास्तव में एक सा हो सकता है हमारे लिए एक समस्या की। अब प्लस ऑपरेटर के लिए प्रयोग किया जाता है कि तार जुटना और संख्या जोड़ने एक साथ, जावास्क्रिप्ट है इसका सबसे अच्छा अनुमान लगाने के लिए के रूप में मैं यह मेरे लिए क्या करना चाहते हैं। और इस मामले में, यह गलत अनुमान लगाया। यह सिर्फ श्रेणीबद्ध दिन होगा, जो 0, एक, दो, तीन, चार, पांच या छह, और तब यह सिर्फ concatenated कि और फिर एक concatenated। यह वास्तव में उन्हें एक साथ जोड़ नहीं था। और तो इन भाषाओं, PHP और जावास्क्रिप्ट, कि दूर abstracts प्रकार की इस धारणा, तुम अब और इसके साथ सौदा करने की जरूरत नहीं है। वे अभी भी हुड के तहत प्रकार है। और हम कर सकते हैं, स्थितियों में इस तरह, तथ्य यह है कि लाभ उठाने कुछ कह रही द्वारा हो सकता है इस तरह, जो द्वारा, जावास्क्रिप्ट कह रही है जिस तरह से, एक पूर्णांक के रूप में इस का इलाज, यहां तक ​​कि एक स्ट्रिंग के रूप में व्यवहार नहीं करते यद्यपि हम एक साथ तार मिश्रण कर रहे हैं यहाँ और पूर्णांकों। यह सिर्फ उन चीजों में से एक है यह संदर्भ में इतनी महान है कि लगता है हम की जरूरत नहीं है कि अब और प्रकार के साथ सौदा है, लेकिन कभी कभी आप हूँ एक स्थिति में चला वास्तव में इस तरह जहां तथ्य यह है कि आप प्रकार के ऊपर नियंत्रण नहीं है आप पर उलटा भी पड़ सकता यदि आप सावधान नहीं हो। हम आईडीई खत्म करने के लिए वापस पॉप और अगर ऐसा है, तो मैं कर रहा हूँ फिर मेरे कंसोल बाहर साफ करने के लिए जा रहा है, और मैं स्ट्रिंग क्लिक करने के लिए जा रहा हूँ इमारत संस्करण दो, जो मुझे लगता है कि पार्स पूर्णांक समारोह का उपयोग जहां है। अब इसे बाहर मुद्रण है मैं उम्मीद कर रहा हूँ कि जानकारी। सोमवार के दिन नंबर एक, मंगलवार इतने पर दिन नंबर दो, और है। तो चलो फिर कार्यों के बारे में बात करते हैं। मुझे लगता है हम गुमनाम बारे में बात करेंगे वादा किया काम करता है, और उस के लिए अब प्रसंग अंत आ गया है। हम ऐसा करने से पहले तो, चलो फिर से बात करते हैं बस एक पल के लिए सरणियों के बारे में। तो सरणियों एक खास हैं एक वस्तु का मामला। वास्तव में, हर चीज में जावास्क्रिप्ट वास्तव में एक वस्तु है। तो कार्य कर रहे हैं एक एक वस्तु का विशेष मामला है, पूर्णांकों एक खास हैं एक वस्तु का मामला है, लेकिन सरणियों विशेष तरीकों की एक संख्या है। वे वस्तुओं रहे हैं, क्योंकि याद है, वे गुण और तरीके हो सकते हैं। वे तरीकों की एक संख्या है कि उन वस्तुओं को लागू किया जा सकता है। कहा जाता है एक तरीका है आकार, array.size, जो करने के लिए वापस आ जाएगी क्या आप उम्मीद कर सकते हैं अपने सरणी में तत्वों की संख्या। array.pop, की तरह की तरह बंद popping के बारे में हमारी धारणा एक ढेर की, यदि आपको याद है हमारे ढेर वीडियो से, सरणी से पिछले तत्व हटा। array.push एक नया तत्व कहते हैं एक सरणी के अंत करने के लिए। array.shift की तरह है डीक्यू की तरह, यह बाहर splices एक सरणी के पहले ही तत्व। लेकिन यह भी एक और खास है एक सरणी की विधि नक्शा बुलाया। और यह एक की तरह है दिलचस्प अवधारणा। तो एक नक्शा के क्या विचार है? आप वास्तव में यह देखेंगे कई अन्य भाषाओं में, और हम एक के बारे में बात नहीं कर रहे नक्शानवीस की तरह, यहां नक्शा हम एक मानचित्रण समारोह के बारे में बात कर रहे हैं। इस संदर्भ में हम कर रहे हैं यहाँ के बारे में बात कर रही है, एक नक्शा एक विशेष आपरेशन हम है एक सरणी पर प्रदर्शन कर सकते हैं एक विशेष समारोह में लागू करने के लिए उस सरणी के प्रत्येक तत्व के लिए। और इसलिए हम में कहेंगे इस मामले में, हो सकता है, array.map और यह के अंदर है, हम गुजर रहे हैं नक्शे में हम चाहते हैं कि एक समारोह है हर एक तत्व को लागू किया जाएगा। इसलिए इसे का उपयोग करने के लिए एक तरह से अनुरूप है एक पाश हर तत्व से पुनरावृति करने के लिए और एक खास लागू प्रत्येक तत्व के लिए कार्य करते हैं, सिर्फ जावास्क्रिप्ट इस में बनाया गया है लागू किया जा सकता है कि एक मानचित्रण की धारणा। और इस के लिए एक महान संदर्भ है एक गुमनाम समारोह के बारे में बात करते हैं। तो चलो हम हम कहते हैं कि पूर्णांकों के इस सरणी। यह nums कहा जाता है, और यह पांच मिल गया है उस में बातें, एक, दो, तीन, चार, पंज। अब मैं कुछ मैप करना चाहते हैं इस सरणी के लिए पर कार्य करते हैं। मैं एक समारोह लागू है चाहता हूँ सरणी के प्रत्येक तत्व के लिए। ठीक है, चलो मैं चाहता हूँ कि क्या हम कहते हैं कि सिर्फ तत्वों के सभी को दोगुना करना है। मैं सिर्फ एक पाश का उपयोग कर रहा है क्या कर सकता है वर मैं 0 के बराबर होती है, कि मैं तुलना में कम है या बराबर करने के लिए 4, मैं प्लस, प्लस, और तो हर एक संख्या दोगुनी। लेकिन मैं यह भी कुछ इस तरह कर सकते हैं। मैं nums पूर्व में था कह सकते हैं एक दो तीन चार पांच, अब, हालांकि, मैं करने के लिए आप चाहते हैं इस सरणी पर एक मानचित्रण लागू मैं आप की तरह होता है, जहां हर संख्या दोगुनी करने के लिए। और कहा कि ठीक है यहाँ क्या हो रहा है। लेकिन मैं गुजर रहा हूँ क्या नोटिस तर्क नक्शा करने के रूप में। यह एक गुमनाम समारोह है। और मैं नहीं दिया नोटिस इस समारोह में एक नाम है, मैं केवल यह एक पैरामीटर सूची दी है। और तो यह एक उदाहरण है एक गुमनाम समारोह का। हम आम तौर पर यह कहते हैं कभी नहीं नक्शे के संदर्भ के बाहर कार्य करते हैं। हम एक पैरामीटर के रूप में परिभाषित कर रहे हैं नक्शा, और इसलिए हम वास्तव में नहीं करने के लिए यदि इसके लिए एक नाम की आवश्यकता है के बारे में परवाह ही बात है कि नक्शा है और यह सही परिभाषित किया गया है वहाँ नक्शे के अंदर। और इसलिए इस एक गुमनाम समारोह है। हम नहीं कर पाए हैं पहले यह करने के लिए। कुछ कार्य नक्शा है कि , संख्या, एक पैरामीटर स्वीकार और उस समारोह क्या करता है रिटर्न बार 2 NUM है। और इसलिए इस के बाद मानचित्रण लागू किया गया है, अब यह क्या nums लग रहा है जैसे, दो, चार, छह, आठ, 10। और हम पर पॉप करेंगे मेरी ब्राउज़र विंडो और बस इस पर एक नज़र डालें सच में जल्दी के रूप में अच्छी तरह से। तो मैं यहाँ एक बटन है मेरे घर पृष्ठ में डबल बुलाया। और मैं डबल क्लिक करें, और यह बताता है जब मुझे यह एक था इससे पहले, दो, तीन, चार, पाँच दो, चार, छह, आठ, 10 के बाद। और मैं वापस जाने के लिए और यदि डबल क्लिक करें फिर, दो, चार, छह, आठ, 10। और फिर बाद, चार, आठ, 12, 16, और फिर 20। और मैं इस समारोह में क्या कर रहा हूँ? खैर, हम सिर्फ आईडीई पर पॉप, और अगर मैं यहाँ है, मेरे गुमनाम समारोह ऊपर खींच 13 के माध्यम से लाइन सात पर, मैं कर रहा हूँ यहां एक छोटा सा फैंसी काम कर रही है, लेकिन मैं सिर्फ बाहर मुद्रण कर रहा हूँ क्या सरणी में वर्तमान में है। फिर लाइन 16, 17 पर, और 18, मेरी नक्शा नहीं है। मैं इस दोहरीकरण आवेदन कर रहा हूँ, जहां यह है हर एक तत्व के लिए कार्य करते हैं। और फिर आगे के नीचे एक छोटी सी, मैं तो बस एक ही बात कर रहा हूँ मैं अब मैं कर रहा हूँ, सिवाय इसके पहले कर रहा था सरणी की सामग्री बाहर मुद्रण बाद में। लेकिन मैं यहाँ किया गया है सब है सिर्फ एक गुमनाम समारोह का उपयोग एक पूरी सरणी पार नक्शा करने के लिए। तो एक और बड़ा विषय के बारे में बात करने के लिए जावास्क्रिप्ट एक घटना की धारणा है। एक घटना सिर्फ कुछ ऐसा होता है एक उपयोगकर्ता अपने वेब के साथ सूचना का आदान प्रदान जब पेज, तो शायद वे कुछ क्लिक करें, या शायद पेज लोड हो रहा है खत्म हो गया है या शायद वे चले गए हैं कुछ पर अपने माउस, या वे कुछ टाइप किया एक निवेश के क्षेत्र में। इन सभी बातों के घटनाओं रहे हैं कि हमारी वेब पेज पर होने वाली हैं। और जावास्क्रिप्ट है क्षमता कुछ समर्थन करने के लिए एक ईवेंट हैंडलर कहा जाता है, जो एक कॉलबैक समारोह है कि एक HTML घटना के लिए प्रतिक्रिया करता है। और एक कॉलबैक समारोह क्या है? खैर, यह आम तौर पर सिर्फ एक और है एक गुमनाम समारोह के लिए नाम है। यह एक समारोह है कि एक घटना के लिए प्रतिक्रिया करता है। हम करने के लिए आते हैं, जहां और यह है कुछ कार्यों बंधन का विचार एक विशेष HTML विशेषता के लिए। सबसे HTML तत्व है एक विशेषता के लिए समर्थन हम एचटीएमएल में के बारे में बात नहीं की है कि क्लिक पर तरह कुछ के लिए वीडियो या मंडराना पर या लोड पर, इन घटनाओं के सभी तुम तो कार्यों लिख सकते हैं उन घटनाओं के साथ सौदा है कि जब उन घटनाओं अपने वेब पेज पर होते हैं। और तो शायद अपने HTML कुछ इस तरह लग रहा है। और मैं यहाँ दो बटन है, बटन एक और बटन दो, और यहाँ मैं वर्तमान में है परिभाषित कुछ भी नहीं है, लेकिन यह वह जगह है जहाँ विशेषता पर क्लिक जाहिरा तौर पर मेरे एचटीएमएल टैग का हिस्सा है। तो जाहिरा तौर पर मैं क्या परिभाषित जब उस गुण के अंदर चल रहा है, यह कुछ जावास्क्रिप्ट होने जा रहा है घटना का जवाब है कि समारोह संभवतः पर क्लिक करने के बटन एक या बटन दो। किस तरह की ठंडी यह है कि हम है के बारे में है एक सामान्य घटना हैंडलर लिख सकते हैं। और इस घटना हैंडलर होगा एक घटना वस्तु बना। और घटना वस्तु हमें बताना होगा दो बटनों में से जो क्लिक किया था। अब कैसे काम करता है? खैर, यह कुछ इस तरह लग सकता है। इसलिए हम पहले हमारे बटन को परिभाषित करेगा कॉलबैक करने के लिए एक प्रतिक्रिया है कहा जाएगा कि समारोह बटन क्लिक किया जाता है, हम घटना चेतावनी नाम फोन करता हूँ। और हम कर रहे हैं, दोनों ही मामलों में नोटिस इस घटना के पैरामीटर में गुजर रहा है। इसलिए हम इस समारोह फोन या जब इस समारोह क्या हो रहा घटना से शुरू हो रहा है, यह इस घटना वस्तु बनाने के लिए जा रहा है और एक के रूप में इसे पारित पैरामीटर नाम सचेत करने के लिए। और कहा कि घटना वस्तु है जानकारी होते जा रहा जिसके बारे में बटन क्लिक किया था। और कैसे यह है कि क्या करता है? खैर, यह कुछ इस तरह लग सकता है। तो अब मेरे अलग में जावास्क्रिप्ट फ़ाइल, मैं हो सकता है इस खोजने के लिए है समारोह चेतावनी नाम, जो फिर से उस घटना पैरामीटर स्वीकार करता है। मैं पता लगाने हूँ जहां और फिर यहाँ है जो बटन शुरू हो गया था, वर ट्रिगर घटना के बराबर होती है डॉट स्रोत तत्व। बनाए गए स्रोत क्या था में पारित किया गया था कि इस घटना वस्तु? यह बटन एक था या यह बटन दो था? और फिर यहाँ मैं क्या कर रहा हूँ सब है trigger.innerhtml को छापता है। खैर, इस मामले में, इस में संदर्भ, trigger.innerhtml बटन पर लिखा है, बस क्या है। हम कूद अगर यह सिर्फ इतना होता है वापस एक पल के लिए, कि होगा उन बटन टैग के बीच में क्या हो सकता है। यह बटन एक या बटन दो हो जाएगा। और चलो पर एक नजर डालते हैं कैसे इस घटना हैंडलर होगा हम इसे व्यवहार में चल रहा था, तो देखो। तो सब से पहले, आप है खोल दिया events.js, जावास्क्रिप्ट फ़ाइल जो जहां है मैं इस समारोह को परिभाषित किया है। आप देख सकते हैं और, यह है बहुत ज्यादा है कि क्या वास्तव हम सिर्फ एक सेकंड पहले स्लाइड पर देखा था। और मैं करने के लिए खत्म हो जाएंगे हम प्रयोग किया गया है मुख पृष्ठ। और मैं बटन यहाँ है एक और बटन दो। और मैं एक बटन पर क्लिक करेंगे। आप यदि आप बटन एक पर क्लिक किया यहीं चेतावनी में देख सकते हैं। ठीक। , बटन दो पर आप क्लिक करें एक बटन दो पर क्लिक किया। इसलिए दोनों ही बटन है एक ही समारोह कॉल, है ना? वे दोनों चेतावनी नाम थे घटना है, लेकिन इस घटना वस्तु हम पर क्लिक करते हैं कि बनाया जाता है यह क्लिक किया था जो बटन हमें बताता है। हम अलग दो लिखने के लिए नहीं था होने के साथ कार्य या सौदा कोई अतिरिक्त जानकारी पारित करने के लिए। हम बस पर भरोसा कर रहे हैं क्या जावास्क्रिप्ट होगा कि बनाने के लिए है, जो हमारे लिए क्या हमारी ओर से घटना की वस्तु की तरह। की तुलना में जावास्क्रिप्ट को एक बहुत अधिक नहीं है हम इस वीडियो में कवर किया है क्या, लेकिन वाले इन आप मिलना चाहिए मौलिक काफी लंबे रास्ते के लिए आप सब कुछ करेंगे सीखने इस बारे में पता करने की जरूरत है दिलचस्प भाषा। मैं डौग लॉयड हूँ। इस CS50 है।