[Музички] Даг LLOYD: Значи од сега ние сме стари предностите на веб програмирање, нели? И ние сме опфатени неколку јазици во одделни видеа. И сега ајде да се направи уште една, за да вклучите. Прво добрата вест, го вклучите Javascript- е модерна програмирање јазик многу сличен на PHP чија Синтаксата е изведен од С, па тоа е добро место за почеток. Се работи за стара колку и PHP, како и, ја е околу 20 години. Бил измислен околу во исто време како PHP. И да го вклучите Javascript-е всушност прилично фундаментално значење за корисникот искуство на веб. Всушност, постојат три јазици што сум би рекол вид сочинуваат корисникот искуство на интеракција со веб-сајт, HTML, CSS и JavaScript. Па сега ајде да зборуваме на малку за JavaScript. Лошата вест, сепак, со вклучите Javascript-е тоа што ги поставува многу правила за себе, а потоа тоа им се распаѓа. И JavaScript, всушност, може да биде вид на предизвик да се учи, затоа што тоа е за разлика од C и PHP, кои се многу структурирана и имаат многу строги правила за тоа како работите можат да работат. Го вклучите Javascript-е вид на толку се флексибилни дека можеби работите не се случува да го работа на начинот на кој се очекува од нив да се, а можеби и ние навистина не може да се научи нашиот прв програмски јазик како JavaScript. Па можеби и поради тоа што не го прави тоа самата никакви правила во собата, и тоа не е навистина спроведе добри кодирање навики. Но, сега се надевам дека ние сме развиени некои добри кодирање навики, и така можеме да почнеме да набег во вклучите Javascript-малку. Да се ​​напише на JavaScript, сличен на отворање до датотеката C со точка C продолжување или датотека со наставката PHP точка PHP, сите ние треба да направите е да се отвори датотеката со наставката на датотеката дот js. Ние не треба да имаат некои посебни Раздели, како што направивме во PHP. Тој вид на агол Држач прашалник PHP дека ние сме се користи за тоа, начинот на кој ние им кажуваме на нашите пребарувач, кој што го имаме е JavaScript е преку вклучување тоа во една HTML таг, и ќе видиме малку за како да го сторат тоа во само еден миг. Од друга работа што го прави Го вклучите Javascript-различно, сепак, е дека таа работи на клиентската страна. Така се потсетиме дека со PHP ние никогаш не може навистина да се види на PHP дека подвлече веб-страница. Ако некогаш видени извор страница, ние само ќе видете на HTML, која беше генерирани од страна дека PHP. Но го вклучите Javascript-раководи клиентската страна. Вашиот JavaScript работи на вашиот компјутер. И затоа што можете да направите работи како додадете блокатори. Нели? Блокирање реклама обично се прави од страна на при што загинаа сите на JavaScript на кој работи на одредена веб-страница. И поради тоа ќе мора да се кандидира на вашиот компјутер Од страна на клиентот, вие само може да го запре JavaScript за трчање во целост. Што исто така значи дека кога ќе го користите веб-сајт кој вклучува JavaScript, ќе треба да испрати извор на JavaScript код како дел од вашиот одговор http на клиентот кога ќе го побараат. И така да не би можел сакате да го користите вклучите Javascript- да се направи навистина чувствителни работи како поминува информации во врска со лозинките на корисниците и да се врати натаму, затоа што тие се, всушност, ќе добиваат сите на изворниот код, не само на HTML дека е генерирана, како што би било случај со речеме PHP. Па, како да го вклучите Javascript-се вклучат во нашата HTML да започне со? Па, слични на CSS, всушност, е вид на како го правиме тоа овде. Со CSS имаме стил тагови. И во внатрешноста на тие стил тагови, можеме да го дефинираме на CSS стилот на состојба. Слично со вклучите Javascript- можеме да се отвори скриптата тагови, друг HTML таг ние не се зборува за во нашата HTML Видео, и пишува JavaScript во помеѓу оние скрипта тагови. Исто така, иако, како CSS, ние би можеле да се поврзат во надворешна CSS фајлови и повлечете ги во нашата програма на тој начин. Со CSS ние исто така може, извинете, скриптирање ние, исто така може да наведете изворот атрибут на таг скрипта да се поврзат во JavaScript одделно, така да не се мора да го напише во меѓу сценариото тагови, ние можат да ја водат во користење дека сценариото ознака, како и. И исто како и случајот со CSS каде ние препорачува дека тоа е веројатно во ваш најдобар интерес е да се напише вашиот CSS во посебна обвивка во случај што треба да го промените, Слично на тоа се препорачува кои ги пишувате вашите JavaScript во одделни датотеки и да користат извор на сценариото тагови атрибут да се врзуваат за вашата вклучите Javascript во вашиот HTML, вашата веб страница. Така да вклучите променливи, ние ќе почнам да зборувам за синтаксата тука. И ние ќе одиме преку овој вид на брзо, затоа што сме го правеле во PHP, па сето ова треба да биде прилично запознаен. Така променливи во вклучите Javascript-се многу сличен на PHP променливи. Нема типот назначувач, и кога ќе се воведе на променлива, го префиксот со var клучен збор. Во PHP ние ќе направи нешто вака, знакот за долар х. Тоа е како ние индициран променлива, но не, ние не го спомнуваат тип на варијаблата на сите. Ние би рекол нешто како знак за долар x е еднаква на 44 во PHP. Ако ние се прават Истото во JavaScript, би рекле var x е еднаква на 44. Па var е вид на нашиот пат за воведување на променлива. Тоа е можеби малку повеќе интуитивна од само долар променлива знак. Повторно, бидејќи нема типови на податоци, ние би можеле да го направите тоа со било кој тип на податоци, стрингови, нешто друго сите ќе биде var. Conditionals, сите наши стари пријатели од Ц и PHP се уште е на располагање, така што мораме ако, друго, ако, на друго место, прекинувач и прашањето марка на дебелото црево. Прекинувач останатите како флексибилна како што беше во PHP, но сите тие си запознаени со до сега. И слично, со јазли се стариот омилени на време, направите додека, како и за уште е на располагање за нас. Па веќе знаеме многу од Го вклучите Javascript-основни вид на основите само врз основа на тоа доста на знаењето сега за C и PHP. Што е со функциите во JavaScript? Па, сличен на PHP секоја функција е запознаени со функцијата на клучни зборови. Велиш функција, а потоа ќе се почнуваат да се дефинира вашата функција. Што е малку различен за да вклучите, иако е способноста да се имаат она што се нарекува анонимен функција. За да можете да ги дефинираат функциите кои немаат име. Ова е нешто што навистина не ја виделе. Ние навистина ќе се користи концептот на анонимен функција малку подоцна во овој видео, затоа што тоа ќе се направи малку повеќе смисла во контекст кога ќе го видиме во одредена ситуација што сум стокмено тука. Но ајде да ги разгледаме во она што едноставен вклучите Javascript- Функцијата може да изгледа. Па јас сум качил напред и отвори мојот CS50 ИРО и јас сум веќе се кандидира Апачи да започне мојот сервер работи. И имам оваа датотека отворени наречен Home.html. А јас ќе зумирате малку тука. И во основа, може да се види Home.html е само еден куп на копчиња. И јас сум тврдејќи дека на врвот тука дека ова е делот на JavaScript материјали. Значи има еден куп копчиња тука, но она што всушност се направи овие копчиња? Па, ние ќе се упатат во текот на мојот IED, и јас се Home.html отвори тука. На самиот почеток, тука е местото каде сум поврзување во сите мои изворни датотеки JavaScript. Нели? Па имам anonymous.js, clock.js, Јас сум со користење на атрибутот извор на етикетата скрипта да се поврзат во датотека. Па јас не го имаат напишано било Го вклучите Javascript-директно во оваа датотека, но јас сум се повлече во сите JavaScript сум напишал одделно. А ако се движите надолу тука, ова сите треба да се погледне малку запознаен со малку нова синтакса. Имаме тука насловот таг за функции, а потоа едно копче. Имам еден влез што е копчето за тип, и очигледно кога ќе кликнете на неа, Одам да се повикаат некои функционираат алармирање датум. И ова е како можеме да се вид на измеша малку на JavaScript и HTML. Тие всушност играат прилично убаво заедно, и така очигледно кога Кога ќе кликнете на ова копче, јас ќе одам да се повикаат некои датум алармирање функција. И слично, не сум дефинирано однесување за сите други копчиња кои се на тој home.html страница, кои ние ќе ги враќа за да во текот на ова видео. Но, ајде да се вратиме до тука и да погледнам во clock.js, што е Го вклучите Javascript-датотека што можам напиша дека ја има оваа првата функција ние ќе треба да ги погледне. Како што можете да видите, ја започнувам мојата вклучите Javascript- функционира со функцијата на клучни зборови, и јас сум со оглед на ова име, се вика алармирање датум. Внатрешноста на таму, јас очигледно создаде нова локална променлива наречена тековниот датум. А јас ќе одам да се додели еднаква на нов датум. И ние може да се добие во многу детали за тоа што датум е, и навистина да го вклучите Javascript-е толку голема дека ние не може да покрие сè во едно видео. Но доволно е да се каже, тоа се случува да се врати да ме точка а податоците кои encapsulates на тековните датум и време. Јас сум во зачувување на таа во променлива дека сум очигледно ќе се алармираат тековниот датум. Па, она што го прави тоа на алармирање тековниот датум изгледа? Ајде да ги разгледаме во самата датотека назад во текот на прозорецот на прелистувачот. Значи, повторно, ова е на копчето што го се врзани за оваа именувана функција. И јас го кликнете таму и да бараат она што го правеше тоа предупредени. Тоа, никна овој вид на кутија кажувам ме дека сегашниот момент е, очигледно тоа е 4ти ноември во 10:43:43 во утринските часови. И кога тоа ќе го кликнете повторно, сега тоа е неколку секунди подоцна, нели? Значи тоа е сите на оваа функција го прави тоа. Кога ќе кликнете на ова копче, тоа се појавува предупредувачка порака до мене. Па таму навистина не е премногу да функционира што е различно од PHP, само малку на нова синтакса кој доаѓа со работа со вклучите Javascript-. Низи во вклучите Javascript-се прилично јасна. Да се ​​изјаснат за низа, ќе го користите синтакса квадратни загради дека ние сме запознаени со од PHP. И слични на PHP, се исто така може да се меша типови на податоци. Па оваа низа, двата на овие низи би биде совршено легитимно JavaScript. Оној кој е во сите цели броеви, и оној што е помешано различни типови на податоци. Што е нешто многу различно во JavaScript, иако? Тоа е идејата на објектот. Така што можеби сте слушнале за објектно ориентирано програмирање. Ние не се направи многу на тоа во CS50, но ние ќе се направи малку од неа тука во контекст на JavaScript. Сега да вклучите има способност да се однесуваат како објектно ориентирано програмирање јазик, но тоа не е сама по себе исклучиво објектно ориентирано програмски јазик. И тоа повторно доаѓа назад кон зошто реков, тоа може да биде многу тешко да се научат Го вклучите Javascript-како вашиот прв програмирање јазик, бидејќи не ја навистина се вклопуваат одредена парадигма. C од друга страна е функционална програмски јазик. Ако сакаме да, функции се вид на големиот шеф човек, нели? Тие диктираат што се случува сè друго. Сакаме да го промениме променливи, ние го нарекуваме функции. Ние се прават работите на функции. Објекти, наместо тоа, во објектно ориентиран јазик, објекти вид да стане ѕвезда и функции стануваат вид на средно. Но, она што е објект, што е ова сфаќање на објектот? Па, ако тоа им помага, мислам во врска со тоа на прв вид на како структура C или struct кои ги научивме за пред. Во C, структура содржи голем број на области, а можеби и ние сега може да почне да се нарекуваме овие полиња својства. Но никогаш навистина својства да застане на свои, нели? Ако јас се дефинира структурата за автомобил вака со следниве две области или својства, еден на цел број за годината на автомобилот и уште 10 карактер стринг за модел на автомобил, Можам да кажам нешто како ова, Јас може да се прогласи нова променлива од типот struct автомобил Херби. А потоа можам да кажам нешто како herbie.year еднаква на 1.963, и herbie.model еднаква Буба. Во ред е. Јас сум со користење на полињата во контекст на структурата, но јас никогаш не би можел само кажете нешто како ова. Нели? Не можам да го користат името на поле независно од структура. Тоа е вид на основна работа. Па полиња се биде фундаментален за С структури се многу слични својства се фундаментален за да вклучите објекти. Но, она што ги прави особено интересно е во тоа што, исто така може да има објекти што се нарекуваат методи, кои се навистина само фенси збор за функции кои се својствени на објектот, како и. Така, тоа е функција која може да биде само наречен во контекст на објектот. Само објект кој има дефинирано оваа функција во внатрешноста на своите, ако мислите дека за еден struct, функцијата е дефиниран во внатрешноста на оние дефинирање големи загради на структурата. Па тоа значи само нешто на структурата. И тоа е вид на она што го правиме тука со предмети и методи. Тоа е како да сме дефинирање на функција што има смисла само на одреден објект, и така ние јавам дека методот на објектот. А ние никогаш не може да се јавите на тој функција независна од објектот, исто како и ние не можеме да кажеме година или модел независно од struct во В. Толку функционално програмирање парадигми изгледа нешто како ова. Функција, а потоа кога ќе помине во објектот како параметар. Во објектно ориентирано програмирање јазици, овој вид на добива превртува, а ние ќе се размислува за им се допаѓа ова, object.function. Па тоа на некој начин дека дот оператор повторно имплицирајќи дека тоа е некој вид на имот или атрибут на самиот објект. Но, тоа е она што на објект ориентиран програмски јазик може да се направи за да се направи функција јавете се на метод кој, пак, кои е само посебен збор за функција кои се својствени на објектот. Тоа е она што синтакса може да изгледа. И така ќе почнеме да видите некои од ова во контекст на JavaScript. Можете исто така да се размислува за еден објект вид на како асоцијативна низа, која ние ја познаваме од PHP. Се сеќавам асоцијативна низа страница нас да имаат клучните вредност парови, наместо на постоење на индексите 0, еден, два, три, и така натаму, како ние сме навикнати од C низи. Асоцијативни низи може да карта зборови, како во видеото на PHP, ние се зборува за додатоци на пици. И така имавме низа наречен пици, и ние имаше сирење беше клучна и 8,99 $ беше вредност, а потоа феферони беше клучен, 9,99 $ бил вредност, и така натаму. И така ние исто така може да се размислува за еден објектно вид на слични на асоцијативна низа. И така оваа синтакса тука ќе се создаде нов објект наречен Херби со две својства во него. Година, кој е назначен на вредноста од 1963 година, и модел, кој е назначен на низа Буба. И ќе забележите дека овде јас сум со користење единечен наводник во JavaScript. Можете да го користите единечни или двојни наводници кога ќе зборуваме за жици. Тоа е само конвенционално случај дека повеќето пати кога сте пишување на JavaScript, вие само Користете единечен наводник. Но можев да користат двојни наводници тука, и кој ќе биде совршено во ред, како и. Па се сеќавам како во PHP имавме овој поим на едно за секој циклус, кој ќе ни овозможи да iterate во текот на сите на вредноста на клучните пара асоцијативна низа, затоа што ние не ја имаат оваа способност да iterate преку 0, еден, два, три, четири, и така натаму? Го вклучите Javascript-има нешто многу слично, но тоа не се вика за секој циклус, се вика во петелки. Значи, ако јас ми рече како ова, за var клучот во објект, тоа е вид на слични на велејќи: за секое нешто како нешто. Но, сите што го правам овде е процесирањето преку сите клучеви на мојот објект. И во внатрешноста на кадрава протези таму, би користи објектно квадратни загради клуч за да се однесуваат на вредноста на тој клуч локација. Алтернативно, има дури и друг пристап. Ако јас само само се грижат за вредности, можам да кажам за клуч на објектот, и само ги користат клучните внатре. Значи за var клучот во објект, имам да се користи објектно квадратни загради клучот во јамка. За var клуч на објектот, што можам само го користите копчето во внатрешноста на јамка, бидејќи јас сум само конкретно зборуваме за вредностите таму. Па ајде можеби и ги погледне на разликата само за да ви покаже брзо разликата помеѓу четири во и за на со многу специфична низа, што имаме тука, недела низа. Па морам да се најде нова низа дека сум исполнет со седум жици, Понеделник, вторник, среда, Четврток, петок, сабота, недела. И сакам да сега iterate преку оваа низа, печатење на одредени информации. Ако јас го користам во јамка за печатење на информации, што мислите, ќе одам да се добие? Па, ајде да ги разгледаме. И пред да се фрламе во текот до мојот прозорец на прелистувачот само знам дека console.log е вид на еден начин на вршење на печатење F во JavaScript. Но, она што е на конзола? Па, тоа е она што ние ќе да се оди да ги разгледаме во моментов. Добро, па ние сме назад овде во мојот прозорец на прелистувачот а јас ќе одам да се отвори мојата инвеститорот алатки. Повторно, јас сум само притискање F12 да се отвори инвеститорот алатки. И ќе забележите дека овде во Си го избрал конзола. Значи ова е идејата на инвеститорот конзола, и тоа ќе ни овозможи да се печати информации надвор, како вид на терминалот, но како што ќе видите малку подоцна, ние, исто така, може да се тип на информации во за да комуницирате со нашата веб-страница. Одам да зумирате малку тука, и Јас ќе сум сега кликнете на за во тестот. И четири во test-- јас не сум ќе ви го покаже код за тоа токму сега, но ќе го добие ако преземете изворниот код, кој се поврзани со оваа video-- е само дека во јамка што сме го виделе само Пред вториот на слајд. Па јас сум ќе кликнете дека копчето, и овде, тука е она што го испечати во конзола, 0, еден, два, три, четири, пет, шест. Не сакав да испечатите на информации внатре во тие локации низа, затоа што јас се користи за во јамка. И во внатрешноста на телото на јамка, јас само отпечатени клуч не приговара клуч. Но, ако јас сега исчистам конзола, а јас за да се префрлите на тест, а четири од тестот Велам јас го користам за на јамка наместо да и печатење клуч, ако јас кликнете на тоа, сега јас сум добивање на Крај на елементи во внатрешноста на мојата објект или мојот низа во овој случај. Мојата низа од недела дена. Јас испечати Понеделник, Вторник, среда. Така што е разликата помеѓу а во јамка, која отпечатоци од само на копчињата и ако само ги користат клучните внатрешноста на телото на јамка, и за на јамка, која отпечатоци за вредностите ако користите само клуч во внатрешноста на телото на јамка. Сите права, како ние сега да се почне concatenate жици, а можеби и ги измеша некои променливи со интерполација како што ние бевме во можност да се направи во PHP? Па, ние сме прилично запознаен со овој од PHP. Ова е како ние ќе го стори тоа со помош на точка операторот да concatenate жици. Во JavaScript, иако, ние всушност го користите нешто наречен оператор плус, кој е можеби дури и малку повеќе интуитивен, нели? Ние сме додавање на еден куп на жици заедно. Значи, да се упатат назад и да видат што овој ќе печати ако ние се обидуваме да се печати сите информации во недела низа. Добро, па под тука под низа сплет, Имам две опции, стринг зграда V1 и V2 потоа стринг зграда. И ќе видиме зошто ние треба V2 во една секунда. Но, јас сум ќе кликнете на стринг зграда V1, која е кодот бевме само преземање на ум, на console.log со сите предности. Ајде да видиме дали ова отпечатоци од она што го очекуваме. Понеделник е ден број 01 на оваа недела, Вторник е ден број 11 на оваа недела. Па, она што јас се обидував да се направи таму беше се тоа да се печати од понеделник е ден број еден, вторник е ден број два. Но, се чини како да сум секогаш ги отпечатите еден. Па, зошто е тоа така? Па, што се испоставува, земи друг изглед во оваа мала програмка на код овде. Забележи дека ние сме со користење на плус оператор во две различни контексти. И така тука е местото каде можеби работите дека ние сме вид на се вели, ох, тоа е толку голема. Ние не се занимаваме со податочни типови повеќе. Но, тука е местото каде фактот дека ќе ја загубиме типови на податоци всушност, може да биде малку проблем за нас. Сега дека операторот на плус се користи за concatenate жици и додадете броеви заедно, треба да вклучите да се направи својата најдобра претпоставка за тоа што сакам да го направи за мене. И во овој случај, го претпоставам ред. Тоа едноставно се споени ден, што би било 0, еден, два, три, четири, пет или шест, и потоа тоа само споени дека и тогаш споени еден. Тоа всушност не додадете ги заедно. И така тие јазици, PHP и JavaScript, дека апстракти далеку овој поим на видови, вие не мора да се справи со тоа повеќе. Тие се уште имаат видови под хауба. И можеме, во ситуации вака, поткрепа на тој факт велејќи нешто како и можеби ова, што кажува на JavaScript, од страна на Патем, се третираат ова како цел број, не го третираат како стринг, па дури и иако ние сме мешање заедно стрингови и цели броеви тука. Тоа е само една од оние работи дека тоа се чини толку голема во контекст дека ние не треба да се се справи со повеќе видови, но понекогаш ќе наиде на ситуација токму како овој, каде што на фактот дека немате контрола врз видови може да заврши лошо за вас ако не си внимателен. И така, ако ние поп назад во текот на ИРО, јас сум случува да го исчистите од мојата конзола, повторно, а јас ќе одам да кликнете низа градење верзија две, што е местото каде што го искористив овој анализирам int функција. Сега тоа е печатење информации дека сум очекуваме. Ден број еден понеделник, вторник е ден број два, и така натаму. Па ајде да зборуваме за функции повторно. Јас вети дека ќе се зборува за анонимни функции, а сега на контекстот за тоа конечно пристигнаа. Па пред да го стори тоа, ајде да разговараме повторно за низи за само една секунда. Па низи се посебен случај на објектот. Всушност, сè во JavaScript е всушност предмет. Па функции се Посебен случај на објектот, цели броеви се посебен случај на објектот, но низи конкретно Има голем број на методи. Се сеќавам, бидејќи тие се објекти, тие можат да имаат својства и методи. Тие имаат голем број на методи со кои може да се примени на тие предмети. Има еден метод наречен големина, array.size, кои ќе се вратат вас, како што може да се очекува бројот на предмети во низа. array.pop, како вид на нашето сфаќање на пукање исклучување на говедо, ако се потсетиме од нашите Купишта видео, отстранува последниот елемент од низата. array.push додава нов елемент до крајот на низа. array.shift е вид на како постигнувања, тоа продолжни спојници надвор првиот елемент на низа. Но, постои и уште еден специјален метод на низа наречен мапата. И ова е вид на интересен концепт. Значи она што е идеја на мапа? Всушност ќе се види ова во неколку други јазици, и ние не зборуваме за вид на картографи картата тука, ние зборуваме за функција за мапирање. Во контекст ние сме зборуваме овде, мапа е специјална операција ние може да се изврши на низа да се применуваат на одредена функција до секој елемент од таа низа. и така ние би рекле во овој случај, можеби array.map, и во него, ние сме полагање во картата е функција што сакаме да се примени на секој елемент. Така, тоа е вид на аналогни на користење јамка за да iterate во текот на секој елемент и се однесуваат на одредена функција на секој елемент, само да го вклучите Javascript-е изградена во овој Идејата за мапирање дека може да се примени. И ова е одличен контекст за да се зборува за анонимен функција. Па да речеме имаме оваа низа од цели броеви. Таа се вика nums, и тоа е се здобија пет работи во него, еден, два, три, четири, пет. Сега сакам да планирам некои функција на оваа низа. Сакам да има функција да аплицираат до секој елемент од низата. Па, ајде да се каже дека она што сакам да направите е само да се удвои од сите елементи. Она што може да направите е само да се користи јамка за var јас еднакво на 0, i е помал од или еднакво на 4, I плус, плус, и потоа со двоен секој број. Но јас исто така може да се направи нешто како ова. Можам да кажам nums беше порано еден два три четири пет, Сега, сепак, јас би сакал да нанесете мапирање излез на оваа низа каде што би ви се допаѓа да се зголеми двојно секој број. И тоа е точно она што се случува овде. Но се забележи она што јас го поминува во како аргумент за да на сајтот. Ова е анонимен функција. И ќе забележите дека јас не се дадени оваа функција име, Имам само го дал листа параметар. И така ова е пример на анонимен функција. Ние обично никогаш не би го нарекол ова функција надвор од контекстот на мапата. Ние сме го дефинира како параметар да се на сајтот, и така ние навистина не треба да имаат име за тоа дали Единственото нешто што се грижи за е мапа и тоа е утврдено право таму внатрешноста на мапата. Па така ова е анонимен функција. Ние не сме биле во можност да го направите тоа претходно. Планирам некоја функција што прифаќа еден параметар, бр, и она што таа функција го прави тоа се враќа NUM 2 пати. И така, по овој мапирање се применува, Сега тоа е она што nums изглед како, два, четири, шест, осум, 10. И ние ќе се појави во текот на мојот прозорец на прелистувачот и само погледнете овој навистина брзо, како и. Па имам друго копче тука во мојот дом страница, наречена двојно. И кога ќе кликнете двапати, и тоа кажува мене пред тоа беше еден, два, три, четири, пет по два, четири, шест, осум, 10. И ако се вратам и кликнете двапати еднаш, два, четири, шест, осум, 10. А потоа и по, четири, осум, 12, 16, а потоа и 20. И што правам во оваа функција? Па, ако ние само се појави во текот на IDE, и Јас се повлече до мојот анонимен функција, тука on-line од седум до 13, јас сум прави малку фенси работа тука, но јас сум само печатење што е моментално во низа. Потоа на линија 16, 17, и 18, тука е мојот план. Ова е местото каде што јас сум примена на ова двојно зголемување функција на секој еден елемент. А потоа малку подолу, Јас сум само го прават истото Што го правев порано, освен сега сум печатење на содржината на низата потоа. Но, сите што го направив тука е само користење анонимен функција да карта низ цела низа. Значи уште една голема тема да се зборува за во JavaScript е поимот на некој настан. Настан е нешто што едноставно се случува, кога корисникот се поврзува со вашиот веб- страница, па можеби ќе кликнат нешто, или можеби од страната е завршена товарење, или можеби тие се пресели нивните глувчето над нешто, или тие го внеле нешто во полето за внес. Сите овие работи се случуваат настани кои се случуваат на нашата веб-страница. И JavaScript има способност за поддршка на нешто наречен настан управувачот, кој е функција која повратен повик реагира на една HTML настан. И, што е во функција на повратен повик? Па, тоа е генерално се само уште еден именува за анонимен функција. Тоа е функција која реагира на некој настан. И ова е местото каде што доаѓаме до Идејата за врзување на одредени функции на одредена HTML атрибут. Повеќето HTML елементи имаат поддршка за атрибут дека ние не зборуваме за во HTML видео за нешто како за клик или на лебдиш или на товар, сите овие настани кои потоа може да се пишуваат функции кои се занимаваат со тие настани кога тие настани се случи на вашиот веб-страница. Па можеби и вашата html изгледа нешто како ова. И имам две копчиња тука, копче за една и две копчиња, и тука имам во моментов ништо не е дефинирано, Но, ова е местото каде што на атрибут клик очигледно е дел од мојот HTML таг. Значи очигледно кога ќе се дефинира што е се случува во внатрешноста на таа особина, тоа се случува да биде некој го вклучите Javascript- функција која реагира на настанот се претпоставува дека на кликање на копче за една или две копчиња. Што е вид на ладно за ова е тоа што може да напише генерички настан управувачот. И овој настан управувачот ќе создаде објект настан. И објектот на настанот ќе ни каже која од двете копчиња е кликнато. Сега Како ли тоа работа? Па, тоа може да изгледа нешто како ова. Па ние прво ќе го дефинираат нашиот копчиња да има одговор на повратен повик функција која ќе се вика кога копчето е кликнато, ние ќе го наречеме настанот алармирање име. И ќе забележите дека и во двата случаи сме поминува во овој параметар настан. Па ние го нарекуваме оваа функција или кога оваа функција се активира од страна на настан се случува, тоа се случува да се создаде овој настан објект и да го пренесе како параметар за да се алармираат име. И на тој настан објектот е ќе содржи информации за кои копче е кликнато. И како тоа да го направи тоа? Па, тоа може да изгледа нешто како ова. Па сега во мојот посебен Го вклучите Javascript-датотека, би можел Мора да се најде на оваа функција на алармирање за името, кое повторно прифаќа дека параметар настан. А потоа тука е местото каде што јас сум откривање кое копче се активира, var активирањето еднаква на настанот дот извор елемент. Што е изворот кој ја создаде овој настан објект кој беше донесен во? Беше тоа еден копче или тоа беше копчето два? А потоа тука сите го правам е печатење trigger.innerhtml. Па, во овој случај, во овој контекст, trigger.innerhtml е само она што е напишано на копче. Тоа само така се случува, ако ние фрламе врати за една секунда, што би да биде она што е во меѓу оние копчето тагови. Тоа ќе биде еден копче или копчето два. И ајде да ги разгледаме во како овој настан управувачот би изгледа ако имавме тоа трчање во пракса. Значи прво на сите, сте отвори events.js, кој е на датотеката каде што го вклучите Javascript- Имам дефинирано оваа функција. И како што можете да видите, тоа е доста точно она што ние само видов на слајд пред една секунда. А јас ќе одам во текот на Главна страница ние сме биле користење. И јас имам тука копче едно копче и два. А јас ќе кликнете на копчето еден. Сте кликнале на копчето еден, ако може да се види тука, во состојба на готовност. ВО РЕД. Кликнете на копчето за две, кликнале на копчето два. Па и двете копчиња имаат истиот повик на функција, така? Тие и двајцата беа на алармирање име настан, но овој настан објект која добива се создава кога ќе кликнете на ни кажува што е кликнато на копчето. Ние не треба да се напише два одделни функции или да се има да се справи со да се помине сите дополнителни информации. Ние сме само потпирајќи се на она што ќе го вклучите Javascript- направи за нас, а тоа е да се создаде тој вид на настан објект во наше име. Има многу повеќе отколку да го вклучите Javascript- она што ние сме опфатени во ова видео, но да се има овие основните треба да ја добие доста долго начини за учење сè ќе треба да знаете во врска со оваа Интересно јазик. Јас сум Даг Лојд. Ова е CS50.