[عزف الموسيقى] DOUG لويد: حتى الآن نحن عمري الايجابيات في برمجة الويب، أليس كذلك؟ ونحن قد غطت عدة اللغات في أشرطة الفيديو الفردية. والآن دعونا نفعل أكثر واحد، وجافا سكريبت. أولا الخبر السار، وجافا سكريبت هي البرمجة الحديثة لغة PHP الذي يشبه إلى حد كبير مشتق من جملة C، لذلك هذا هو مكان جيد للبدء. فقد حان قديمة قدم PHP، وكذلك، بعد أن كان حوالي 20 عاما. اخترع حولها في نفس الوقت PHP. وجافا سكريبت هي فعلا جميلة أساسية لتجربة المستخدم على شبكة الإنترنت. في الواقع، هناك ثلاث لغات بأنني أن أقول النوع من الماكياج ل تجربة المستخدم من التفاعل مع الموقع، أتش تي أم أل، المغلق، وجافا سكريبت. وحتى الآن دعونا نتحدث قليلا عن جافا سكريبت. الأخبار السيئة، رغم ذلك، مع جافا سكريبت أنه يحدد الكثير من القواعد لنفسها، ومن ثم فإنه يكسر لهم. ويمكن أن يكون في الواقع جافا سكريبت نوع من التحدي للتعلم، لأنه على عكس C و PHP التي ستتمحور جدا ولها قواعد صارمة جدا لكيف تسير الامور يمكن أن تعمل. جافا سكريبت لديها نوع من حصلت مرنة بحيث ربما أن الأمور لا تسير ل العمل بالطريقة التي كنا نتوقع منهم، وربما نحن حقا لا يمكن معرفة لدينا أول لغة برمجة كما جافا سكريبت. ولذلك ربما لأنه لا حددت لنفسها أي قواعد، وأنه لا حقا فرض عادات الترميز جيدة. ولكن الآن لدينا أمل المتقدمة بعض العادات الترميز جيدة، وحتى نتمكن من البدء في غزوة إلى تفعيل جافا قليلا. لكتابة جافا سكريبت، على غرار افتتاح حتى ملف C مع C تمديد نقطة أو ملف PHP بملحق نقطة PHP، كل ما عليك القيام به هو فتح ملف مع ملف التمديد النقطة شبيبة. نحن لا تحتاج إلى أي خاص المحددات كما فعلنا في PHP. هذا النوع من زاوية قوس علامة استفهام PHP أننا معتادون على من ذلك، فإن الطريقة نقول المتصفح لدينا أن ما لدينا هو جافا سكريبت هي التي بما في ذلك في علامة أتش تي أم أل، وسنرى قليلا عن كيف نفعل ذلك في مجرد لحظة. والشيء الآخر الذي يجعل جافا سكريبت مختلفة، رغم ذلك، هو أنه يعمل العميل. لذلك نذكر مع PHP التي نحن لا يمكن أبدا أن نرى حقا وPHP التي أكد موقع على شبكة الانترنت. إذا نظرنا من أي وقت مضى مصدر الصفحة، كنا فقط رؤية HTML والتي كان ولدت قبل ذلك PHP. ولكن جافا سكريبت يدير جانب العميل. يدير جافا سكريبت على جهاز الكمبيوتر الخاص بك. وهذا هو السبب الذي يمكن القيام به أشياء مثل إضافة حاصرات. الصحيح؟ وعادة ما يتم حجب الإعلانات من قبل مما أسفر عن مقتل كل من جافا سكريبت الذي يعمل على موقع معين. ولأن ذلك سوف يكون ل تشغيل على جانب العميل الجهاز الخاص بك، يمكنك فقط وقف جافا سكريبت لتشغيل تماما. وهذا يعني أيضا أنه عند استخدام موقع على شبكة الانترنت يتضمن جافا سكريبت، لديك لارسال المصدر جافا سكريبت كود كجزء من استجابة HTTP الخاص بك إلى العميل عندما يطلبون ذلك. وذلك قد لا يكون ل تريد استخدام جافا سكريبت أن تفعل أشياء حساسة حقا مثل المعلومات التي تمر حول كلمات المرور الخاصة بالمستخدمين ذهابا و إيابا، لكنها في الواقع الذهاب لتلقي كافة التعليمات البرمجية المصدر، ليس فقط أتش تي أم أل التي يتم إنشاؤها، مثل هو الحال مع القول PHP. كيف لنا إذن أن تشمل جافا سكريبت في أتش تي أم أل جهدنا لتبدأ؟ حسنا، على غرار CSS، في الواقع، هو نوع من كيف نفعل ذلك هنا. مع CSS لدينا علامات الاسلوب. وداخل هذه العلامات الاسلوب، يمكننا تحديد ورقة أنماط CSS. وبالمثل مع جافا سكريبت يمكننا فتح علامات البرنامج النصي، علامة HTML أخرى لم نكن الحديث عنها في فيديو أتش تي أم أل لدينا، والكتابة الجافا سكربت في بين هذه العلامات النصي. على الرغم أيضا، مثل CSS، ونحن يمكن أن تصل في خارج ملفات CSS وجذبهم إلى برنامجنا بهذه الطريقة. مع CSS يمكننا أيضا، عفوا، مع جافا سكريبت يمكننا أيضا تحديد مصدر السمة من العلامة النصي لربط في جافا سكريبت بشكل منفصل، لذلك كنت لا أن تكتب في بين علامات البرنامج النصي، ونحن يمكن ربطه في استخدام هذه العلامة النصي كذلك. وكما هو الحال مع الحال مع CSS حيث أوصينا أنه ربما كان في مصلحة الخاصة بك لكتابة CSS في ملف منفصل في القضية تحتاج إلى تغييره، القيام بالمثل نوصي أن تكتب بك الجافا سكربت في ملفات منفصلة واستخدام مصدر علامات البرنامج النصي السمة لربط جافا سكريبت إلى HTML الخاص بك، صفحة الويب الخاصة بك. متغيرات جافا سكريبت لذلك، وسوف نقوم نبدأ الحديث عن بناء الجملة هنا. وسوف نذهب من خلال هذا النوع من بسرعة، لأننا قد فعلت ذلك في PHP، لذلك هذا ينبغي أن يكون مألوفا جدا. من المتغيرات في جافا سكريبت ل تشبه الى حد بعيد PHP المتغيرات. لا يوجد نوع محدد، و عند إدخال متغير، أنت البادئة مع الكلمة فار. في PHP كنا نفعل شيئا مثل هذا، علامة الدولار السينية. هذه هي الطريقة التي أشرنا متغير، ولكن لا، نحن لا أذكر نوع المتغير على الإطلاق. لقلنا شيء من هذا القبيل الدولار علامة X يساوي 44 في PHP. إذا كنا نفعل في نفس الشيء في جافا سكريبت، يمكن أن نقول فار س يساوي 44. حتى فار هو نوع من طريقنا إدخال متغير. هذا هو ربما أكثر قليلا بديهية من مجرد علامة للدولار متغير. مرة أخرى، لأن ليس هناك أنواع البيانات، يمكننا القيام بذلك مع أي نوع البيانات، سلاسل، سيكون أي شيء آخر عن أن يكون فار. الشرطية، كل من الأصدقاء القدامى من C و PHP لا تزال متاحة، لذلك علينا إذا، آخر إذا، وإلا، والتبديل والسؤال علامة القولون. التبديل تبقى مرنة بقدر ما كان في PHP، ولكن كل هذه كنت على دراية حتى الآن. وبالمثل مع الحلقات هي المفضلة القديمة من الوقت، قيام بعض الوقت، ولللا تزال متاحة لنا. لذلك نحن نعرف بالفعل الكثير من نوع جافا سكريبت الأساسي للأساسيات فقط بحكم وجود لا بأس به المعرفة الآن حول C و PHP. ماذا عن وظائف في جافا سكريبت؟ حسنا، على غرار كل PHP هي وظيفة عرض مع وظيفة الكلمة. أقول لكم وظيفة، ثم البدء في تحديد وظيفة الخاص بك. ما هو مختلفة قليلا حول جافا سكريبت، على الرغم من القدرة على الحصول على ما يسمى وظيفة غير معروفة. حتى تتمكن من تحديد وظائف أن لا يكون له اسم. هذا شيء نحن حقا لم أر من قبل. سنقوم حقا استخدام مفهوم من وظيفة غير معروفة بعد ذلك بقليل في هذا فيديو، لأنه سوف أكون جعل أكثر من ذلك بقليل معنى في السياق عندما نرى أنه في حالة معينة أنني قد وضعت هنا. ولكن دعونا مجرد إلقاء نظرة في ما جافا سكريبت بسيط وظيفة قد تبدو. حتى لقد ذهبت إلى الأمام و فتحت لي IDE CS50 ولقد شغلت بالفعل أباتشي لبدء تشغيل خدمة بلدي. ولدي هذا الملف فتح دعت صفحة home.html. وسوف تكبير قليلا هنا. وأساسا، يمكنك ان ترى صفحة home.html هو مجرد حفنة من الأزرار. وأنا مدعيا في الجزء العلوي هنا أن هذا هو المقطع جافا سكريبت المواد. لذلك هناك مجموعة من الأزرار هنا، ولكن ماذا هذه الأزرار فعلا؟ حسنا، نحن سوف يتوجه الى بلدي العبوات الناسفة، ولقد فتح صفحة home.html هنا. في البداية، هنا حيث أنا ربط في كل من بلدي الملفات المصدر جافا سكريبت. الصحيح؟ لذلك ليس لدي anonymous.js، clock.js، أنا باستخدام السمة المصدر العلامة النصي لربط في الملف. لذلك أنا لم أكتب أي جافا سكريبت مباشرة في هذا الملف، ولكني سحبت في جميع جافا سكريبت لقد كتب بشكل منفصل. وإذا كنا انتقل إلى هنا، وهذا ينبغي لجميع تبدو مألوفة إلى حد ما مع قليلا من جملة جديد. لدينا هنا العلامة رأس ل وظائف ومن ثم زر واحدة. لدي مدخلا هذا زر نوع، وعلى ما يبدو عندما فوقه، انا ذاهب الى استدعاء بعض تعمل الآن في حالة تأهب. وهذه هي الطريقة التي يمكن نوع من خلط قليلا من جافا سكريبت و HTML. فإنها في الواقع لعب بشكل جيد جدا معا، وذلك على ما يبدو عندما I انقر على هذا الزر، وانا ذاهب استدعاء بعض تاريخ التنبيه وظيفة. ولها بالمثل I تعريف السلوكيات لجميع الأزرار الأخرى التي هي على تلك الصفحة صفحة home.html، ونحن سوف تبقى العودة إلى خلال هذا الفيديو. ولكن دعونا نعود يصل هنا ونلقي نظرة في clock.js، وهو ملف جافا سكريبت بأنني كتب له هذه الوظيفة الأولى ونحن في طريقنا لنلقي نظرة على. كما ترون، وأنا أبدأ جافا سكريبت تعمل مع وظيفة الكلمة، ولقد أعطيت هذه واحدة اسم، انه دعا تاريخ في حالة تأهب. داخل هناك، وعلى ما يبدو إنشاء متغير محلي جديد يسمى التاريخ الحالي. وانا ذاهب الى تعيين على قدم المساواة لتحديد موعد جديد. ويمكن أن نصل إلى الكثير من التفاصيل على ما هو الآن، وحقا جافا سكريبت غير ذلك كبيرة لا نستطيع ربما تغطي كل شيء في فيديو واحد. ولكن يكفي أن نقول، وهذا يحدث العودة إلى لي عنصر البيانات التي تلخص التاريخ والوقت الحالي. أنا تخزين أنه في متغير أنا على ما يبدو ذاهب لتنبيه التاريخ الحالي. حسنا، ماذا يفعل في حالة تأهب التاريخ نظرة الحالي مثل؟ دعونا نلقي نظرة على الملف نفسه دعم أكثر في نافذة المتصفح. ذلك مرة أخرى، وهذا هو الزر الذي I ربطت ل، هذه الوظيفة مسمى. ثم اضغط على ذلك هناك و انظروا ماذا فعل ذلك، فإنه ينبه. لقد ظهرت هذا النوع مربع من قول لي أن الوقت الحالي هو، على ما يبدو انها في 4 نوفمبر 10:43:43 صباحا. وإذا كنت فوقه مرة أخرى، الآن انها بضع ثوان في وقت لاحق، أليس كذلك؟ ذلك أن كل هذه الوظيفة لا. عند النقر على هذا الزر، فإنه ينبثق رسالة تنبيه لي. ولذلك لا يوجد في الحقيقة ليست كثيرا إلى وظائف وهذا يختلف عن PHP، قليلا فقط من جملة جديد الذي يأتي مع العمل مع جافا سكريبت. المصفوفات في جافا سكريبت ل جميلة واضحة. للإعلان صفيف، استخدام بناء الجملة بين قوسين معقوفين أننا على دراية من PHP. وعلى غرار PHP، ونحن كما يمكن خلط أنواع البيانات. لذلك هذه المجموعة، على حد سواء من هذه المصفوفات من شأنه يكون جافا سكريبت مشروعة تماما. واحدة هذا كل الأعداد الصحيحة، واحد واختلطت أنواع البيانات المختلفة. ما هو شيء مختلف جدا في جافا سكريبت، على الرغم من؟ هذا هو مفهوم كائن. لذلك ربما كنت قد سمعت من البرمجة الشيئية. ونحن لا نفعل الكثير من ذلك في CS50، ولكننا سنفعل قليلا منه هنا في سياق جافا سكريبت. الآن جافا سكريبت لديه القدرة على تتصرف باعتبارها البرمجة الشيئية اللغة، ولكن لم تكن هي نفسها حصريا على وجوه المنحى لغة البرمجة. وهذا يأتي مرة أخرى إلى ماذا قلت، يمكن أن تكون صعبة للغاية لمعرفة جافا سكريبت كما البرمجة الأولى لغة، لأنه لا تناسب حقا نموذج معين. C من ناحية أخرى هو وظيفية لغة البرمجة. إذا كنا نريد أن، وظائف هي نوع من رجل كبير رئيسه، أليس كذلك؟ أنها تملي ما يحدث كل شيء آخر. نريد تغيير المتغيرات، ندعو الوظائف. ونحن نفعل الأشياء إلى وظائف. كائنات بدلا من ذلك، في الاعتراض اللغة المنحى، الكائنات نوع من تصبح نجمة و وظائف تصبح نوعا من الثانوي. ولكن ما هو كائن، ما هو هذه الفكرة لكائن؟ حسنا، إذا كان ذلك يساعد، والتفكير حول هذا الموضوع في النوع الأول من مثل هيكل C أو البنية أننا تعلمنا من قبل. في C، ويحتوي على هيكل عدد من المجالات، وربما نحن الآن قد تبدأ ل استدعاء هذه الخصائص المجالات. ولكن خصائص أبدا حقا الوقوف على قدميها، أليس كذلك؟ إذا يمكنني تحديد هيكل للسيارة مثل هذا بما يلي اثنين الحقول أو الخصائص، وهي واحدة صحيح للسنة السيارة وحرف آخر 10 سلسلة لنموذج من السيارة، أستطيع أن أقول شيئا من هذا القبيل، يمكنني تعريف متغير جديد نوع السيارة البنية هيربي. وبعد ذلك يمكنني أن أقول شيئا مثل يساوي herbie.year 1963، وherbie.model يساوي بيتل. وهذا موافق. أنا باستخدام الحقول في سياق الهيكل، ولكن أنا لا يمكن أبدا فقط أقول شيئا من هذا القبيل. الصحيح؟ لا يمكنني استخدام اسم الحقل مستقلة للهيكل. انها نوع من شيء أساسي. من المجالات التي يجري الأساسية للهياكل C هي مشابهة جدا لخصائص يجري أساسي إلى كائنات جافا سكريبت. ولكن ما يجعل منها اهتمام بوجه خاص غير أن الأشياء يمكن أن يكون أيضا ما تسمى الطرق، التي هي في الحقيقة مجرد نزوة لكلمة المهام التي المتأصلة في الكائن كذلك. لذلك فمن وظيفة التي يمكن أن تكون فقط ودعا في سياق كائن. فقط كائن الذي حدد هذه الوظيفة داخل لها، إذا كنت تفكر في البنية، وظيفة يتم تعريف داخل تلك تعريف الأقواس المجعدة للهيكل. ذلك يعني فقط شيء إلى الهيكل. وهذا النوع من ما نقوم به هنا مع الأشياء والأساليب. انها في الاساس وكأننا تحديد الوظيفة التي فقط من المنطقي على كائن معين، ولذا فإننا ندعو إلى أن أسلوب للكائن. ونحن لا يمكن أبدا أن نسمي ذلك وظيفة مستقلة من وجوه، تماما مثل لا نستطيع أن نقول سنة أو نموذج مستقلة عن البنية في C. البرمجة الوظيفية ذلك نماذج تبدو شيئا من هذا القبيل. وظيفة وبعد ذلك عندما كنت تمر في كائن كمعلمة. في البرمجة الشيئية لغات، وهذا يحصل نوع من انقلبت، وكنا نفكر انها مثل هذا، object.function. لذلك النوع من تلك النقطة المشغل مما يعني مرة أخرى أنه نوعا من الملكية أو سمة من الكائن نفسه. ولكن هذا هو ما كائن لغة البرمجة الموجهة قد القيام به لجعل وظيفة ندعو طريقة، مرة أخرى، والتي هي مجرد كلمة خاصة لوظيفة هذا هو الأصيل في كائن. هذا هو ما أن جملة قد تبدو. ولذا فإننا سوف نبدأ في رؤية بعض هذا في سياق جافا سكريبت. يمكنك ايضا ان نفكر كائن نوع من مثل مجموعة النقابي، ونحن على دراية من PHP. تذكر تسمح لمجموعة النقابي أن يكون لدينا أزواج قيمة المفتاح، بدلا من ذلك وجود مؤشرات 0، واحد، اثنان، ثلاثة، وهلم جرا وكأننا تستخدم لمن C المصفوفات. يمكن صفائف النقابي خريطة الكلمات، كما هو الحال في الفيديو PHP، كنا نتحدث عن الطبقة من البيتزا. وهكذا كان لدينا مجموعة دعا البيتزا، ونحن وكان الجبن مفتاح و$ 8،99 كان القيمة، ومن ثم كان ببروني مفتاح، 9،99 $ وقيمة، وهلم جرا. وهكذا يمكن أن نفكر أيضا حول الاعتراض نوع من مشابهة لالنقابي مجموعة. وحتى هذه الجملة هنا من شأنه أن يخلق كائن جديد دعا هيربي مع اثنين خصائص داخل منه. العام، الذي تم تعيينه قيمة 1963، والنموذج، الذي تم تعيينه السلسلة خنفساء. ويلاحظ هنا أن أستعمل علامات الاقتباس المفردة في جافا سكريبت. يمكنك استخدام علامات الاقتباس المفردة أو المزدوجة عندما كنت تتحدث عن السلاسل. انها مجرد التقليدية حالة أن معظم الأوقات عندما كنت أكتب جافا سكريبت، كنت مجرد استخدام علامات الاقتباس المفردة. ولكن يمكنني أن استخدام علامات الاقتباس المزدوجة هنا، و من شأنه أن يكون على ما يرام تماما كذلك. لذلك تذكر كيف في PHP كان لدينا هذه الفكرة من أجل كل حلقة من شأنها أن تسمح لنا تكرار في كل مكان من قيمة المفتاح أزواج لالنقابي مجموعة، لأننا لم يكن لديك هذه القدرة على تكرار من خلال 0، واحد، اثنان، ثلاثة، أربعة، وهلم جرا؟ جافا سكريبت لديه شيء مشابه جدا، ولكنها ليست يسمى لكل حلقة، انه دعا للفي الحلقات. لذلك إذا قلت لي مثل هذا، على المفتاح فار في الكائن، هذا النوع من يشبه القول لكل شيء كشيء. ولكن كل ما أفعله هنا هو بالتكرار من خلال كل من مفاتيح الكائن بلدي. وداخل مجعد تستعد هناك، وأود أن استخدام الكائن بين قوسين معقوفين مفتاح الرجوع إلى القيمة في هذا الموقع الاساسي. بدلا من ذلك، هناك حتى بأسلوب مختلف. إذا أنا فقط نهتم فقط القيم، أستطيع أن أقول لمفتاح من وجوه، ومجرد استخدام المفتاح في الداخل. لذلك لمفتاح فار في الكائن، ولدي استخدام الكائن بين قوسين معقوفين المفتاح داخل الحلقة. لفار مفتاح من وجوه، ويمكنني أن مجرد استخدام المفتاح داخل الحلقة، لأنني فقط على وجه التحديد نتحدث عن القيم هناك. لذلك دعونا ربما تأخذ ننظر إلى الفرق فقط لتظهر لك بسرعة الفرق بين أربعة في وللمع محددة جدا مجموعة، والتي لدينا هنا، مجموعة الأسبوع. لذلك يجب أن تجد مجموعة جديدة التي ملأت مع سبع سلاسل، الاثنين، الثلاثاء، الاربعاء، الخميس، الجمعة، السبت، الأحد. وأريد أن تكرار الآن من خلال هذه المجموعة، طبع معلومات معينة. إذا كنت تستخدم لفي حلقة لطباعة المعلومات، ما رأيك انا ذاهب للحصول على؟ حسنا، دعونا نلقي نظرة. وقبل أن تقفز فوق لنافذة المتصفح الخاص بي، أعرف تماما أن console.log هو نوع واحد طريق القيام F الطباعة في جافا سكريبت. ولكن ما هو وحدة؟ حسنا، هذا ما نحن ذاهبون للذهاب نلقي نظرة على الحق الآن. OK، لذلك نحن هنا مرة أخرى في نافذة المتصفح الخاص بي، وانا ذاهب لفتح يصل أدوات المطورين بلدي. مرة أخرى، أنا مجرد ضرب F12 لفتح أدوات المطورين. ولاحظ أن هنا في أعلى لقد اخترت وحدة التحكم. لذلك هذا هو مفهوم من وحدة تحكم مطور، وسوف تسمح لنا ل طباعة المعلومات بها، نوع من مثل المحطة، ولكن كما سترى بعد ذلك بقليل، يمكننا أيضا كتابة المعلومات في للتفاعل مع الصفحة على شبكة الإنترنت. أنا ذاهب لتكبير قليلا هنا، وأنا ستعمل الآن انقر على لفي الاختبار. وأربعة في test-- انا لا شيء تظهر لك رمز لذلك في الوقت الحالي، ولكن عليك الحصول عليه إذا كنت تحميل شفرة المصدر أن يرتبط هذا video-- غير أن فقط لفي حلقة الذي رأيناه مجرد الثانية قبل على الشريحة. لذلك أنا فوق ستعمل أن زر، وأكثر من هنا، وهنا ما تمت طباعتها في وحدة التحكم، 0، واحد، اثنان، ثلاثة، أربعة، خمسة، ستة. لم أكن طباعة المعلومات داخل هذه المواقع مجموعة، لأنني استخدمت لفي الحلقة. وداخل الجسم من حلقة، وأنا طبع للتو مفتاح لا يعترض المفتاح. ولكن إذا كنت الآن مسح حدة التحكم الخاصة بي، وأنا التحول إلى لمن الاختبار، وأربعة من الاختبار أقول وأنا استخدم لمن حلقة بدلا من ذلك وطباعة مفتاح، إذا كنت فوق ذلك، والآن أنا الحصول على العناصر الفعلية داخل الكائن بلدي أو مجموعة بلدي في هذه القضية. بلدي مجموعة من أيام الأسبوع. I طباعتها الاثنين، الثلاثاء الاربعاء. لذلك هذا هو الفرق بين للفي الحلقة، التي تطبع مجرد المفاتيح إذا كنت تستخدم فقط مفتاح داخل الجسم من الحلقة، وللمن حلقة، والذي يطبع من القيم إذا كنت تستخدم فقط المفتاح داخل الجسم من الحلقة. كل الحق، وكيف يمكننا الآن البدء في سلسلة السلاسل وربما خلط بعض المتغيرات مع الاستيفاء كما تمكنا من القيام به في PHP؟ حسنا، نحن على دراية جدا مع هذا من PHP. هذه هي الطريقة التي كنا نفعل ذلك باستخدام مشغل نقطة لسلسلة السلاسل. في جافا سكريبت، على الرغم من ونحن في الواقع استخدام شيء دعا المشغل زائد، والتي هو ربما أكثر قليلا بديهية، أليس كذلك؟ واضاف نحن مجموعة سلاسل معا. لذلك دعونا رئيس مرة أخرى مرارا ونرى ما هذا ستطبع إذا كنا نحاول طباعة جميع المعلومات في مجموعة الأسبوع. كل الحق، وذلك بموجب هنا تحت سلسلة سلسلة، لدي خياران، وبناء سلسلة V1 ثم V2 بناء السلسلة. وسنرى ماذا نحن تحتاج V2 في الثانية. ولكن أنا ستعمل انقر على V1 بناء السلسلة، والذي هو رمز كنا مجرد إلقاء نظرة على، وconsole.log مع كل من الإيجابيات. دعونا نرى ما اذا كان هذا يطبع ما نتوقع. ويوم الاثنين هو اليوم رقم 01 من أيام الأسبوع، يوم الثلاثاء هو اليوم رقم 11 من أيام الأسبوع. حسنا، ما كنت أحاول القيام به هو الحصول على هناك لطباعة الاثنين هو عدد اليوم واحد، يوم الثلاثاء هو اليوم الثاني. ولكن يبدو وكأنني طباعة دائما من أصل واحد. حسنا، لماذا؟ حسنا، كما تبين، نلقي نظرة أخرى في هذا مقتطف صغير من التعليمات البرمجية هنا. لاحظ أن نستخدمه زائد مشغل في سياقين مختلفين. وحتى هنا حيث ربما أشياء بعد أن قمنا نوع من تم قائلا: أوه، انه لشيء رائع جدا. نحن لا نتعامل مع أنواع البيانات بعد الآن. ولكن هنا حيث الواقع أن نفقد أنواع البيانات يمكن أن يكون في الواقع قليلا مشكلة بالنسبة لنا. الآن يستخدم المشغل بالإضافة إلى سلسلة السلاسل وإضافة أرقام معا، وجافا سكريبت لديها لتحقيق أفضل تخمين على ما أريد القيام به بالنسبة لي. وفي هذه الحالة، فإنه خمنت خاطئة. ذلك اليوم فقط متسلسلة، والتي ستكون 0، واحد، اثنان، ثلاثة، أربعة، خمسة، أو ستة، وبعد ذلك متصلا فقط ذلك وبعد ذلك متصلا واحد. أنه لم يكن في الواقع إضافتها معا. وحتى هذه اللغات، PHP وجافا سكريبت، أن تجرد بعيدا هذه الفكرة من أنواع، لم يكن لديك للتعامل معها بعد الآن. أنها لا يزال لدينا أنواع تحت غطاء محرك السيارة. ويمكننا، في حالات مثل هذا، الاستفادة من هذه الحقيقة بقول شيء ربما مثل هذا، والذي هو قول جافا سكريبت، من قبل الطريق، وعلاج هذا كعدد، لا تعامل على أنها سلسلة، حتى على الرغم من أننا خلط معا سلاسل والأعداد الصحيحة هنا. انها مجرد واحدة من تلك الأشياء أنه يبدو كبيرا جدا في سياق أننا لم يكن لديك ل التعامل مع أنواع بعد الآن، لكن في بعض الأحيان عليك واجهت وضعا بالضبط مثل هذا حيث أن لم يكن لديك السيطرة على أنواع يمكن أن تأتي بنتائج عكسية عليك إذا كنت غير دقيق. وحتى إذا كنا البوب ​​العودة الى IDE، وأنا الذهاب لطرد حدة التحكم الخاصة بي مرة أخرى، وانا ذاهب الى فوق سلسلة بناء الإصدار الثاني، الذي هو المكان الذي يمكنني استخدام هذه الوظيفة تحليل كثافة العمليات. الآن انها طبع المعلومات التي أتوقع. عدد يوم واحد يوم الاثنين والثلاثاء هو اليوم الثاني، وهلم جرا. لذلك دعونا نتحدث عن وظائف أخرى. وعدت كنا نتحدث عن المجهول وظائف، والآن سياق لذلك وقد وصلت أخيرا. حتى قبل ان نفعل ذلك، دعونا نتحدث مرة أخرى حول صفائف لثانية فقط. حتى المصفوفات هي خاص حالة الجسم. في الواقع، كل شيء في جافا سكريبت هو في الواقع كائن. حتى ظائف هي حالة خاصة من كائن، أعداد صحيحة خاص حالة الجسم، ولكن صفائف على وجه التحديد لدينا عدد من الطرق. تذكر لأنهم كائنات، فإنها يمكن أن يكون الخصائص والأساليب. لديهم عدد من الأساليب التي يمكن تطبيقها على هذه الكائنات. هناك طريقة تسمى حجم، array.size، الذي سيعود ل كنت كما قد تتوقع عدد العناصر في مجموعة الخاصة بك. array.pop، نوع من مثل لدينا فكرة ظهرت قبالة من كومة، إذا كنتم تذكرون من وجهة نظرنا مداخن الفيديو، يزيل العنصر الأخير من مجموعة. array.push يضيف عنصرا جديدا إلى نهاية صفيف. array.shift هو نوع من مثل DQ، فإنه من التوصيلات العنصر الأول جدا من صفيف. ولكن هناك أيضا خاصة أخرى طريقة مجموعة تسمى خريطة. وهذا هو نوع من مفهوم مثير للاهتمام. فما هي فكرة الخريطة؟ سترى هذا الواقع في عدة لغات أخرى، ونحن لا نتحدث عن نوع من رسامي الخرائط خريطة هنا، نحن نتحدث عن وظيفة رسم الخرائط. في السياق نحن نتحدث هنا، خريطة غير أننا على العمليات الخاصة يمكن أن تؤدي على مجموعة تطبيق وظيفة معينة إلى كل عنصر من عناصر هذا الصفيف. وهكذا يمكن أن نقول في هذه الحالة، ربما array.map، وداخله، ونحن تمرير إلى خريطة دالة التي نريد ليتم تطبيقها على كل عنصر واحد. لذلك نوع من مشابهة لاستخدام حلقة تكرار على كل عنصر وتطبيق خاص يعمل على كل عنصر، فقط جافا سكريبت وقد بنيت هذه في فكرة رسم الخرائط التي يمكن تطبيقها. وهذا هو السياق كبير ل الحديث عن وظيفة غير معروفة. لذلك دعونا نقول لدينا هذه مجموعة من أعداد صحيحة. انه دعا NUMS، وانها حصلت على خمسة الأشياء فيه، واحد، اثنان، ثلاثة، أربعة، خمسة. الآن أريد أن تعيين بعض وظيفة إلى هذه المجموعة. أريد أن يكون تطبيق وظيفة إلى كل عنصر من عناصر المصفوفة. حسنا، دعنا نقول أن ما أريد أن القيام به هو مجرد مضاعفة كافة العناصر. ما يمكن القيام به هو مجرد استخدام حلقة لفار الأول يساوي 0، I أقل من أو يساوي 4، وبالاضافة الى ذلك، بالاضافة الى ذلك، و ثم يتضاعف كل رقم واحد. ولكن يمكنني أيضا أن تفعل شيئا من هذا القبيل. أستطيع أن أقول كانت NUMS سابقا واحد إثنين ثلاثة أربعة خمسة، الآن، على الرغم من أنني أود منك أن تطبيق الخرائط على هذه المجموعة حيث أود منك أن يتضاعف كل عدد. وهذا هو بالضبط ماذا يحصل هنا. ولكن لاحظ ما أنا المارة في كوسيطة إلى خريطة. هذه هي وظيفة غير معروفة. ولاحظ أنا لم تعط هذه الوظيفة اسم، لقد منحت فقط قائمة المعلمة. وحتى هذا مثال من وظيفة غير معروفة. ونحن عموما لن نسمي هذا وظيفة خارج سياق خريطة. نحن تحديده كمعلمة إلى الخريطة، ولذا فإننا لا حقا تحتاج إلى أن يكون اسما لأنه إذا كان الشيء الوحيد الذي يهتم هو خريطة ولقد تعريفه الحق هناك داخل الخريطة. وحتى هذا هو وظيفة غير معروفة. لم نكن قادرين للقيام بذلك سابقا. رسم خريطة لبعض الوظائف التي يقبل معلمة واحدة، الأسطوانات، وماذا يعني أن وظيفة ويعود الأسطوانات مرات 2. وحتى بعد هذا وقد تم تطبيق الخرائط، هذا هو الآن ما يبدو NUMS مثل، اثنان، أربعة، ستة، ثمانية، 10. ونحن سوف البوب ​​الى بلدي نافذة المتصفح وعادل الق نظرة على هذا حقا بسرعة أيضا. لذلك ليس لدي زر آخر هنا في صفحتي الرئيسية دعا مزدوجة. وعند النقر المزدوج، وتروي لي قبل أن احد، اثنان، ثلاثة، أربعة، خمسة بعد اثنين، أربعة، ستة، ثمانية، 10. وإذا أعود وانقر نقرا مزدوجا مرة أخرى، اثنان، أربعة، ستة، ثمانية، 10. ثم بعد، أربعة، ثمانية و 12 و 16، ثم 20. وماذا أفعل في هذه الوظيفة؟ حسنا، إذا كنا البوب ​​فقط الى IDE، و I سحب ما يصل لي وظيفة غير معروفة وهنا على خط سبعة إلى 13، وأنا القيام بعمل يتوهم قليلا هنا، ولكن أنا مجرد طبع ما هو حاليا في المصفوفة. ثم في السطر 16، 17، و 18، وهناك خريطة بلدي. هذا هو المكان الذي أنا تطبيق هذا مضاعفة وظيفة إلى كل عنصر واحد. ثم أبعد قليلا إلى أسفل، أنا فقط تفعل الشيء نفسه كنت أفعله من قبل، إلا أنا الآن طبع محتويات المصفوفة بعد ذلك. ولكن كل ما قمت به هنا هو مجرد استخدام وظيفة مجهول لخريطة عبر مجموعة بأكملها. حتى واحد أكثر من موضوع كبير للحديث عن في جافا سكريبت غير مفهوم حدث. حدث شيء ما يحدث فقط عندما يتفاعل المستخدم مع الويب الخاص بك الصفحة، لذلك ربما ينقرون شيء، أو ربما الصفحة الانتهاء من التحميل، أو ربما أنها قد انتقلت على الفأرة فوق شيء، أو أنها قد كتبته شيء في حقل الإدخال. كل هذه الأمور هي الأحداث التي تحدث على صفحة الويب لدينا. ويحتوي جافا سكريبت القدرة على دعم شيء دعا معالج الحدث، الذي هي وظيفة رد الاتصال يستجيب لحدث أتش تي أم أل. وما هو دالة رد؟ حسنا، انها عموما مجرد اسم لوظيفة غير معروفة. انها وظيفة أن يستجيب لهذا الحدث. وهذا هو المكان الذي نأتي إلى فكرة ملزم وظائف معينة لسمة HTML معينة. معظم عناصر HTML لها دعم سمة أننا لم نتحدث عنها في HTML فيديو لشيء من هذا القبيل على نقرة أو على تحوم أو على الحمل، كل هذه الأحداث ثم يمكنك ان كتابة وظائف أن التعامل مع تلك الأحداث عندما تلك الأحداث تحدث على صفحة الويب الخاصة بك. وذلك ربما لديك أتش تي أم أل يبدو شيئا من هذا القبيل. ولدي اثنين من الأزرار هنا، زر واحد واثنين زر، وهنا لدي حاليا لا شيء محددة، ولكن هذا هو المكان السمة على انقر على ما يبدو جزء من بلادي علامة HTML. لذلك على ما يبدو عندما أحدد ما هو يدور داخل تلك السمة، انها سوف تكون بعض جافا سكريبت الوظيفة التي يستجيب إلى الحدث يفترض من النقر على زر واحد أو اثنين زر. ما هو نوع من باردة حول هذا نحن يمكن الكتابة معالج أحداث عام. وسيكون هذا الحدث معالج إنشاء كائن حدث. وكائن الحدث سوف يخبرنا أي من الأزرار اثنين تم النقر. الآن كيف يتم ذلك؟ حسنا، قد تبدو شيئا من هذا القبيل. ولذا فإننا سوف أولا تعريف أزرار لدينا لديك رد على رد الوظيفة التي سوف يطلق عند النقر على زر، وسوف ندعو الحدث اسم في حالة تأهب. وتلاحظ في كلتا الحالتين نحن تمر في هذه المعلمة الحدث. لذلك فإننا ندعو هذه الوظيفة أو عندما يكون هذا وظيفة وبسبب حالة حدوث ذلك، انه سيكون لإنشاء هذا الكائن الحدث وتمريرها باعتبارها المعلمة لتنبيه الاسم. وهذا الكائن الحدث الذهاب لاحتواء المعلومات حول الذي النقر فوق الزر. وكيف يفعل ذلك؟ حسنا، قد تبدو شيئا من هذا القبيل. وحتى الآن في بلدي منفصلة ملف جافا سكريبت، وأنا قد أن تجد هذه اسم الدالة في حالة تأهب، والتي يقبل مرة أخرى أن معلمة الحدث. ثم هنا هو المكان الذي أنا كشف زر التي اندلعت، فار الزناد يساوي الحدث عنصر مصدر نقطة. ما هو المصدر الذي خلق هذا الكائن الحدث الذي تم تمريره في؟ كان على زر واحد أو كان هذا الزر اثنين؟ ثم هنا كل ما أفعله هو طبع trigger.innerhtml. حسنا، في هذه الحالة، في هذا السياق، trigger.innerhtml هو فقط ما هو مكتوب على الزر. يحدث ذلك فقط حتى إذا كنا القفز العودة للمرة الثانية، التي من شأنها أن تكون ما بين هذه العلامات زر. وسيكون على زر واحد أو اثنين زر. ودعونا نلقي نظرة على كيف يمكن أن معالج الحدث هذا ننظر إذا كان لدينا تعمل في الممارسة. لذلك قبل كل شيء، كنت قد فتحت events.js، وهو ملف جافا سكريبت حيث قمت بتعريف هذه الوظيفة. وكما ترون، انها الى حد كبير بالضبط ما رأينا فقط على الشريحة قبل الثانية. وسوف أذهب لأكثر من الصفحة الرئيسية لقد تم استخدام. ولدي هنا الزر واحد واثنين زر. وسوف انقر على زر واحد. يمكنك النقر على زر واحد، إذا كنت يمكن أن نرى هنا في حالة تأهب. حسنا. انقر على زر اثنين، ل بالضغط على زر اثنين. لذلك كل من أزرار لديها نفس المكالمة وظيفة، أليس كذلك؟ كلاهما كان اسم في حالة تأهب الحدث، ولكن هذا الكائن الحدث أن يحصل على خلق عندما كنا انقر على يخبرنا الزر الذي تم النقر. لم يكن لدينا لكتابة منفصلين وظائف أو صفقة مع وجود لتمرير أي معلومات إضافية. نحن فقط الاعتماد على ما سوف جافا سكريبت تفعل بالنسبة لنا، والتي هي لخلق هذا نوع من كائن الحدث نيابة عنا. هناك الكثير لتفعيل جافا من ما كنا المشمولة في هذا الفيديو، ولكن وجود هذه الأساسية التي يجب أن تحصل تماما شوطا طويلا ل تعلم كل شيء عليك تحتاج أن تعرفه عن هذا لغة مثيرة للاهتمام. أنا دوغ ويد. هذا هو CS50.