1 00:00:00,000 --> 00:00:03,840 >> [Muzika] 2 00:00:03,840 --> 00:00:05,770 3 00:00:05,770 --> 00:00:08,690 >> DOUG Lloyd: Deri me tani ne jemi të vjetër pro në programimin e web, e drejtë? 4 00:00:08,690 --> 00:00:12,140 Dhe ne kemi mbuluar disa Gjuhët në video individuale. 5 00:00:12,140 --> 00:00:14,690 Dhe tani le të bëjmë një më shumë, JavaScript. 6 00:00:14,690 --> 00:00:17,370 >> Së pari një lajm i mirë, JavaScript është një programimit modern 7 00:00:17,370 --> 00:00:21,410 Gjuha e shumë si PHP cilit Sintaksa rrjedh nga C, 8 00:00:21,410 --> 00:00:22,830 kështu që është një vend i mirë për të filluar. 9 00:00:22,830 --> 00:00:25,880 Është po aq i vjetër sa PHP, po ashtu, ka qenë rreth e rrotull rreth 20 vjet. 10 00:00:25,880 --> 00:00:28,600 Ajo u shpik rreth të njëjtën kohë si PHP. 11 00:00:28,600 --> 00:00:32,240 Dhe JavaScript është e vërtetë mjaft thelbësore për përvojën e përdoruesit 12 00:00:32,240 --> 00:00:32,740 e web. 13 00:00:32,740 --> 00:00:34,448 Në fakt, ka tri gjuhë që unë 14 00:00:34,448 --> 00:00:38,480 do të thonë lloj të bëjë deri user experience të bashkëveprojmë 15 00:00:38,480 --> 00:00:42,650 me faqen e internetit, html, CSS, dhe JavaScript. 16 00:00:42,650 --> 00:00:46,030 Dhe kështu që tani le të flasim një pak në lidhje me JavaScript. 17 00:00:46,030 --> 00:00:50,301 >> Lajm i keq, edhe pse, me JavaScript është se ajo vendos një shumë e rregullave për vete, 18 00:00:50,301 --> 00:00:51,300 dhe pastaj ai e thyen ato. 19 00:00:51,300 --> 00:00:54,010 Dhe JavaScript fakt mund të jetë lloj i vështirë për të mësuar, 20 00:00:54,010 --> 00:00:57,000 sepse kjo është ndryshe nga C dhe PHP, të cilat janë të strukturuara shumë 21 00:00:57,000 --> 00:01:00,270 dhe kanë rregulla shumë të ngurtë për mënyrën se si gjërat mund të punojnë. 22 00:01:00,270 --> 00:01:03,690 JavaScript është lloj i marrë aq fleksibël 23 00:01:03,690 --> 00:01:06,650 se ndoshta gjërat nuk janë duke shkuar për punojnë mënyrën se si ne presim nga ata, 24 00:01:06,650 --> 00:01:09,830 dhe ndoshta ne me të vërtetë nuk mund të mësojnë gjuha jonë e parë programimi 25 00:01:09,830 --> 00:01:10,769 si JavaScript. 26 00:01:10,769 --> 00:01:12,810 Kështu që ndoshta për shkak se ajo nuk ka vendosur vetë rregulla, 27 00:01:12,810 --> 00:01:15,754 dhe kjo nuk ka të vërtetë zbatuar zakonet e mira coding. 28 00:01:15,754 --> 00:01:18,170 Por tani ne kemi zhvilluar me shpresë disa zakone të mira coding, 29 00:01:18,170 --> 00:01:21,470 dhe kështu që ne mund të fillojnë të bastisje në JavaScript pak. 30 00:01:21,470 --> 00:01:25,750 >> Për të shkruar JavaScript, të ngjashme me hapjen deri një skedar C me një dot C zgjatje 31 00:01:25,750 --> 00:01:29,770 ose një skedar PHP me një shtrirje dot PHP, të gjithë ne duhet të bëni është të hapur një skedë 32 00:01:29,770 --> 00:01:31,764 me dot js fotografi extension. 33 00:01:31,764 --> 00:01:34,430 Ne nuk duhet të kemi ndonjë të veçantë përndarësit si ne e bëmë në PHP. 34 00:01:34,430 --> 00:01:36,750 Kjo lloj e kënd pikëpyetje kllapa PHP 35 00:01:36,750 --> 00:01:40,300 që ne jemi duke përdorur për të nga se, mënyra themi shfletuesin tonë se ajo që kemi është 36 00:01:40,300 --> 00:01:43,502 JavaScript është duke përfshirë ajo në një tag HTML, 37 00:01:43,502 --> 00:01:46,210 dhe ne do të shohim pak rreth si për të bërë këtë në një moment të vetëm. 38 00:01:46,210 --> 00:01:48,210 >> Gjë tjetër që e bën JavaScript ndryshme, 39 00:01:48,210 --> 00:01:50,580 megjithatë, është se ajo shkon anën e klientit. 40 00:01:50,580 --> 00:01:53,430 Pra, kujtojnë me PHP që ne kurrë nuk mund të vërtetë shoh 41 00:01:53,430 --> 00:01:57,041 PHP që nënvizoi një website. 42 00:01:57,041 --> 00:01:59,040 Në qoftë se ne ndonjëherë të shikuarat faqe burim, ne do vetëm 43 00:01:59,040 --> 00:02:02,830 shih html që ishte të krijuara nga ajo PHP. 44 00:02:02,830 --> 00:02:04,900 Por JavaScript shkon anën e klientit. 45 00:02:04,900 --> 00:02:06,710 Juaj JavaScript shkon në kompjuterin tuaj. 46 00:02:06,710 --> 00:02:09,050 Dhe kjo është arsyeja pse ju mund të bëni Gjëra të tilla si shtoni blockers. 47 00:02:09,050 --> 00:02:09,550 E drejtë? 48 00:02:09,550 --> 00:02:12,704 Ad bllokimi është bërë zakonisht nga duke vrarë të gjithë JavaScript 49 00:02:12,704 --> 00:02:14,370 që po kandidon në një faqe të veçantë. 50 00:02:14,370 --> 00:02:19,000 Dhe për shkak se kjo do të duhet të drejtuar në anën tuaj klientit makinë, 51 00:02:19,000 --> 00:02:21,910 ju mund të ndalet vetëm JavaScript për drejtimin tërësisht. 52 00:02:21,910 --> 00:02:27,030 Kjo gjithashtu do të thotë se kur ju përdorni një faqe interneti që përmban JavaScript, 53 00:02:27,030 --> 00:02:32,450 ju duhet të dërgoni burimin JavaScript Kodi si pjesë e përgjigjes suaj http 54 00:02:32,450 --> 00:02:34,159 të klientit kur ata e kërkojnë atë. 55 00:02:34,159 --> 00:02:35,950 Dhe kështu që ju nuk mund të doni të përdorni JavaScript 56 00:02:35,950 --> 00:02:38,395 për të bërë gjëra me të vërtetë të ndjeshme si informacion që kalon 57 00:02:38,395 --> 00:02:41,020 rreth përdoruesve fjalëkalimet mbështetur dhe me radhë, sepse ata janë në fakt 58 00:02:41,020 --> 00:02:45,610 duke shkuar për të marrë të gjitha të kodit burimor, jo vetëm html që është krijuar, 59 00:02:45,610 --> 00:02:49,030 siç do të ishte rasti me themi PHP. 60 00:02:49,030 --> 00:02:51,620 >> Pra, si nuk kemi përfshijnë JavaScript në html tonë për të filluar me? 61 00:02:51,620 --> 00:02:54,520 E pra, e ngjashme me CSS, në fakt, është lloj i si të bëjmë atë këtu. 62 00:02:54,520 --> 00:02:56,190 Me CSS kemi tags stil. 63 00:02:56,190 --> 00:03:00,760 Dhe në brendësi të këtyre tags stil, ne mund të përcaktojë një fletë stil CSS. 64 00:03:00,760 --> 00:03:03,450 Në mënyrë të ngjashme me JavaScript mund të hapë tags script, 65 00:03:03,450 --> 00:03:06,660 tjetër tag html ne nuk e bëri flasim për në videon tonë HTML, 66 00:03:06,660 --> 00:03:09,720 dhe shkruani JavaScript në midis këtyre tags script. 67 00:03:09,720 --> 00:03:13,960 Gjithashtu edhe pse, si CSS, ne mund të lidhin në jashtë fotografi CSS 68 00:03:13,960 --> 00:03:15,900 dhe tërheqja e tyre në programin tonë në këtë mënyrë. 69 00:03:15,900 --> 00:03:18,280 Me CSS ne gjithashtu mund të, më falni, me JavaScript 70 00:03:18,280 --> 00:03:23,240 ne gjithashtu mund të specifikojë burimin atribut i tag script 71 00:03:23,240 --> 00:03:25,720 për të lidhur në JavaScript veç e veç, kështu që ju nuk e bëni 72 00:03:25,720 --> 00:03:27,680 kanë për të shkruar atë në në mes tags script, ne 73 00:03:27,680 --> 00:03:29,600 mund të lidhin atë në përdorimin e se tag script si. 74 00:03:29,600 --> 00:03:33,230 Dhe ashtu si me rastin me CSS ku kemi rekomanduar se ajo ishte ndoshta 75 00:03:33,230 --> 00:03:36,090 në interesin tuaj më të mirë për të shkruar CSS tuaj në një dosje të veçantë në rast 76 00:03:36,090 --> 00:03:38,500 ju keni nevojë për të ndryshuar atë, në mënyrë të ngjashme të bëjmë ne rekomandojmë 77 00:03:38,500 --> 00:03:40,720 që ju të shkruani tuaj JavaScript në dosje të veçanta 78 00:03:40,720 --> 00:03:45,460 dhe të përdorni tags script burim atribuojnë të lidhin tuaj JavaScript 79 00:03:45,460 --> 00:03:49,520 në HTML tuaj, faqen tuaj web. 80 00:03:49,520 --> 00:03:52,610 >> Variabla Pra JavaScript, ne do të fillojnë të flasin për sintaksë këtu. 81 00:03:52,610 --> 00:03:53,600 Dhe ne do të shkojnë nëpër ky lloj i shpejt, 82 00:03:53,600 --> 00:03:56,640 sepse ne kemi bërë këtë në PHP, kështu kjo duhet të gjithë të jetë goxha i njohur. 83 00:03:56,640 --> 00:03:59,490 Pra Variablat në JavaScript janë shumë të ngjashme me PHP variablave. 84 00:03:59,490 --> 00:04:03,270 Nuk ka asnjë lloj Specifier, dhe kur ju futur një ndryshore, 85 00:04:03,270 --> 00:04:05,070 ju prefiksit atë me fjalen var. 86 00:04:05,070 --> 00:04:07,750 Në PHP do të bëjë diçka si kjo, shenjë dollar x. 87 00:04:07,750 --> 00:04:09,950 Kjo është se si ne e treguar një variabël, por jo, ne 88 00:04:09,950 --> 00:04:12,060 nuk e përmend llojin e variablit në të gjitha. 89 00:04:12,060 --> 00:04:15,124 Ne do të themi diçka si dollar shenjë x është e barabartë me 44 në PHP. 90 00:04:15,124 --> 00:04:17,040 Në qoftë se ne ishim duke bërë të e njëjta gjë në JavaScript, 91 00:04:17,040 --> 00:04:19,589 ne do të themi var x është e barabartë me 44. 92 00:04:19,589 --> 00:04:22,780 Pra var është lloj i mënyrës tonë të futur një ndryshore. 93 00:04:22,780 --> 00:04:26,850 Kjo është ndoshta pak më shumë intuitiv se vetëm variabël dollarit shenjave. 94 00:04:26,850 --> 00:04:29,080 >> Përsëri, pasi nuk ka asnjë tipet e te dhenave, ne mund të bëjmë këtë 95 00:04:29,080 --> 00:04:34,490 me çdo lloj të dhënave, vargjet, çdo gjë tjetër do të jenë të gjitha var. 96 00:04:34,490 --> 00:04:37,260 Conditionals, të gjithë e tona miq të vjetër nga C dhe PHP 97 00:04:37,260 --> 00:04:41,640 janë ende në dispozicion, kështu që ne kemi në qoftë se, tjetër në qoftë se, tjetër, kaloni dhe pyetje 98 00:04:41,640 --> 00:04:42,240 zorrës së trashë shenjë. 99 00:04:42,240 --> 00:04:45,890 Kaloni mbetur aq fleksibël sa të ishte në PHP, por të gjitha këto që ju jeni 100 00:04:45,890 --> 00:04:46,930 njohur me nga tani. 101 00:04:46,930 --> 00:04:49,900 Dhe në mënyrë të ngjashme me sythe janë preferuarat e vjetra të kohë, 102 00:04:49,900 --> 00:04:52,700 të bëjë kohë, dhe për ende në dispozicion për ne. 103 00:04:52,700 --> 00:04:55,880 Pra, tashmë ne e dimë se një shumë e themelore lloj JavaScript e bazave 104 00:04:55,880 --> 00:05:01,800 vetëm në bazë të paturit mjaft e njohurive tani rreth C dhe PHP. 105 00:05:01,800 --> 00:05:03,670 >> Po në lidhje me funksionet në JavaScript? 106 00:05:03,670 --> 00:05:08,199 E pra, e ngjashme me PHP çdo funksion është prezantua me fjalen funksion. 107 00:05:08,199 --> 00:05:10,740 Ju thoni funksion, dhe pastaj ju të fillojnë për të përcaktuar funksionin tuaj. 108 00:05:10,740 --> 00:05:12,531 Çfarë është pak më ndryshe për JavaScript, 109 00:05:12,531 --> 00:05:15,700 edhe pse është aftësia që të ketë atë që quhet një funksion anonim. 110 00:05:15,700 --> 00:05:18,880 Kështu që ju mund të përcaktojë funksionet që nuk kanë një emër. 111 00:05:18,880 --> 00:05:21,222 Kjo është diçka që ne me të vërtetë nuk kanë parë më parë. 112 00:05:21,222 --> 00:05:23,430 Ne do të me të vërtetë përdorin konceptin i një funksion anonim 113 00:05:23,430 --> 00:05:27,880 pak më vonë në këtë Video, sepse ajo do të 114 00:05:27,880 --> 00:05:31,530 të bëjë një pak më shumë kuptim në kontekstin e kur ne e shohim atë në një situatë të veçantë 115 00:05:31,530 --> 00:05:33,120 që unë kam hartuar këtu. 116 00:05:33,120 --> 00:05:35,710 Por le të vetëm të marrin një vështrim në atë një JavaScript të thjeshtë 117 00:05:35,710 --> 00:05:37,850 Funksioni mund të duket si. 118 00:05:37,850 --> 00:05:40,610 >> Kështu që unë kam shkuar përpara dhe hapi IDE tim CS50 119 00:05:40,610 --> 00:05:43,690 dhe unë tashmë kam drejtuar Apache për të filluar serverin tim running. 120 00:05:43,690 --> 00:05:46,800 Dhe unë kam këtë fotografi të hapur i quajtur Home.html. 121 00:05:46,800 --> 00:05:48,330 Dhe unë do të zoom në pak këtu. 122 00:05:48,330 --> 00:05:52,090 Dhe në thelb, ju mund të shihni Home.html është vetëm një bandë e butonave. 123 00:05:52,090 --> 00:05:55,291 Dhe unë jam duke pretenduar në krye këtu se ky është seksion JavaScript 124 00:05:55,291 --> 00:05:55,790 materiale. 125 00:05:55,790 --> 00:05:59,490 Pra, ka një bandë e butonave këtu, por çfarë këto butona të bëjë në fakt? 126 00:05:59,490 --> 00:06:03,662 >> E pra, ne do të shkojnë mbi të IED tim, dhe unë Home.html kam hapur këtu. 127 00:06:03,662 --> 00:06:05,620 Në fillim, këtu është ku unë jam i lidhur 128 00:06:05,620 --> 00:06:07,500 në të gjitha e mia JavaScript burim fotografi. 129 00:06:07,500 --> 00:06:08,000 E drejtë? 130 00:06:08,000 --> 00:06:12,440 Pra, unë kam anonymous.js, clock.js, Unë jam duke përdorur atribut burim 131 00:06:12,440 --> 00:06:14,440 i tag script për të lidhur në dosjen. 132 00:06:14,440 --> 00:06:18,660 Kështu që unë nuk kam shkruar asnjë JavaScript direkt në këtë dosje, 133 00:06:18,660 --> 00:06:21,790 por unë kam tërhequr në të gjitha JavaScript Unë kam shkruar veç e veç. 134 00:06:21,790 --> 00:06:24,540 Dhe në qoftë se ne lëvizni poshtë këtu, kjo duhet të gjithë e shohin disi i njohur 135 00:06:24,540 --> 00:06:27,090 me pak e sintaksës së re. 136 00:06:27,090 --> 00:06:32,655 Ne kemi këtu header tag për funksionet dhe pastaj një buton. 137 00:06:32,655 --> 00:06:35,530 Unë kam një kontribut që është një buton lloj, dhe me sa duket kur unë click it, 138 00:06:35,530 --> 00:06:38,130 Unë jam duke shkuar për të thirrur disa funksionojë datën vigjilent. 139 00:06:38,130 --> 00:06:41,792 Dhe kjo është se si ne mund të lloj përzierje deri pak e JavaScript dhe HTML. 140 00:06:41,792 --> 00:06:44,500 Ata në të vërtetë luajnë mjaft mirë së bashku, dhe kështu me sa duket kur 141 00:06:44,500 --> 00:06:48,730 Unë klikoni në këtë buton, unë jam duke shkuar për të thirrur një datë funksion vigjilent. 142 00:06:48,730 --> 00:06:53,660 Dhe në mënyrë të ngjashme kam përcaktuar sjelljet për të gjithë butonat e tjera që 143 00:06:53,660 --> 00:06:56,440 janë në atë faqe home.html, të cilat ne do të vazhdojmë të kthehej 144 00:06:56,440 --> 00:06:59,172 të gjatë të kësaj video. 145 00:06:59,172 --> 00:07:00,880 Por le të kthehemi deri këtu dhe të marrë një sy 146 00:07:00,880 --> 00:07:03,850 në clock.js, i cili është JavaScript skedar që unë 147 00:07:03,850 --> 00:07:07,370 shkroi se e ka këtë funksion parë ne jemi duke shkuar për të marrë një vështrim në. 148 00:07:07,370 --> 00:07:11,630 Siç mund ta shikoni, unë po filloj time JavaScript funksionojë me funksionin fjalen, 149 00:07:11,630 --> 00:07:14,560 dhe unë kam dhënë kjo një emri, ajo që quhet data vigjilent. 150 00:07:14,560 --> 00:07:18,710 Brenda atje, unë duket të krijojë një variabël i ri lokal quhet data e tanishme. 151 00:07:18,710 --> 00:07:21,500 Dhe unë jam duke shkuar për të caktuar një e barabartë me një datë të re. 152 00:07:21,500 --> 00:07:24,430 Dhe ne mund të merrni në një shumë të detaje si për atë një datë është, 153 00:07:24,430 --> 00:07:27,060 dhe me të vërtetë JavaScript është aq i madh që ne nuk mund të 154 00:07:27,060 --> 00:07:28,330 mbuluar çdo gjë në një video. 155 00:07:28,330 --> 00:07:32,220 Por mjafton të thuhet, kjo do për t'u kthyer tek unë një artikull të dhënave që 156 00:07:32,220 --> 00:07:35,470 encapsulates datën dhe kohën e tanishme. 157 00:07:35,470 --> 00:07:39,100 Unë jam ruajtjen atë në një variabël që unë jam me sa duket duke shkuar për të njoftuar datën aktuale. 158 00:07:39,100 --> 00:07:41,300 >> E pra, çfarë bën alarm aktuale date duken si? 159 00:07:41,300 --> 00:07:46,460 Le të marrin një vështrim në dosjen e vetë mbështetur mbi në dritaren e shfletuesit. 160 00:07:46,460 --> 00:07:49,551 Pra, përsëri, kjo është butonin që unë kanë lidhur me, këtë funksion quajtur. 161 00:07:49,551 --> 00:07:51,800 Dhe unë click it atje dhe shikoni se çfarë ajo e bëri, ajo alarmuar. 162 00:07:51,800 --> 00:07:56,140 Ajo popped up këtë lloj të kutisë thënë mua se koha e tanishme është, me sa duket 163 00:07:56,140 --> 00:07:59,370 është 4 nëntor në 10:43:43 në mëngjes. 164 00:07:59,370 --> 00:08:02,345 Dhe në qoftë se unë klikoni atë përsëri, tani kjo është disa sekonda më vonë, e drejtë? 165 00:08:02,345 --> 00:08:03,720 Pra, kjo është e gjitha kjo funksion ka. 166 00:08:03,720 --> 00:08:07,670 Kur unë klikoni këtë buton, atë pops up një mesazh alarm për mua. 167 00:08:07,670 --> 00:08:13,806 168 00:08:13,806 --> 00:08:15,690 Kështu që nuk është e vërtetë shumë për funksionet 169 00:08:15,690 --> 00:08:19,110 kjo është ndryshe nga PHP, vetëm pak e sintaksës së re 170 00:08:19,110 --> 00:08:22,500 që vjen me punuar me JavaScript. 171 00:08:22,500 --> 00:08:24,650 >> Vargjeve në JavaScript janë shumë i thjeshtë. 172 00:08:24,650 --> 00:08:27,200 Të deklarojë një rrjet, ju përdorni kllapa katrore sintaksë 173 00:08:27,200 --> 00:08:30,090 se ne jemi të njohur me nga PHP. 174 00:08:30,090 --> 00:08:33,432 Dhe të ngjashme me PHP, ne gjithashtu mund të përzierje lloje të të dhënave. 175 00:08:33,432 --> 00:08:35,140 Pra ky grup, të dyja i këtyre vargjeve do 176 00:08:35,140 --> 00:08:36,960 të jetë krejtësisht legjitime JavaScript. 177 00:08:36,960 --> 00:08:42,500 Një që është e të gjitha integers, dhe një që përzier lloje të ndryshme të të dhënave. 178 00:08:42,500 --> 00:08:45,020 >> Çfarë është diçka shumë e ndryshme në JavaScript, edhe pse? 179 00:08:45,020 --> 00:08:47,020 Kjo është nocioni i një objekti. 180 00:08:47,020 --> 00:08:50,240 Pra, ndoshta ju keni dëgjuar për kundërshtojnë programimin e orientuar. 181 00:08:50,240 --> 00:08:53,370 Ne nuk e bëjmë një shumë prej tij në CS50, por ne do të bëjmë një grimë të vogël e saj 182 00:08:53,370 --> 00:08:55,670 këtu në kontekstin e JavaScript. 183 00:08:55,670 --> 00:08:59,100 Tani JavaScript ka aftësinë për sillet si një programimin e orientuar nga objekti 184 00:08:59,100 --> 00:09:02,615 gjuhë, por kjo nuk është në vetvete ekskluzivisht të orientuar një objekt 185 00:09:02,615 --> 00:09:03,490 gjuhë programimi. 186 00:09:03,490 --> 00:09:05,281 Dhe kjo përsëri vjen përsëri se pse thashë, 187 00:09:05,281 --> 00:09:10,610 mund të jetë shumë e vështirë për të mësuar JavaScript si programimin tuaj të parë 188 00:09:10,610 --> 00:09:13,890 gjuha, sepse ajo nuk me të vërtetë përshtaten një paradigmë të veçantë. 189 00:09:13,890 --> 00:09:16,430 >> C, nga ana tjetër është një gjuhë programimi funksionale. 190 00:09:16,430 --> 00:09:22,270 Në qoftë se ne duam të, funksionet janë lloj i njeriut Big Boss, e drejtë? 191 00:09:22,270 --> 00:09:24,410 Ata diktojnë çfarë ndodh çdo gjë tjetër. 192 00:09:24,410 --> 00:09:26,600 Ne duam të ndryshojmë variablave, ne e quajmë funksione. 193 00:09:26,600 --> 00:09:28,220 Ne bëjmë gjëra për funksionet. 194 00:09:28,220 --> 00:09:31,250 Objektet në vend të kësaj, në një kundërshtojnë gjuhën e orientuar, 195 00:09:31,250 --> 00:09:35,937 objektet lloj të bëhet yll dhe Funksionet e bërë një lloj të mesëm. 196 00:09:35,937 --> 00:09:38,270 Por ajo që është një objekt, çfarë është ky nocion e një objekti? 197 00:09:38,270 --> 00:09:40,880 E pra, në qoftë se ajo ndihmon, mendoj për atë në llojin e parë 198 00:09:40,880 --> 00:09:44,540 i si një strukturë C ose një struct që ne kemi mësuar për para. 199 00:09:44,540 --> 00:09:47,430 Në C, një strukturë përmban një numër të fushave, 200 00:09:47,430 --> 00:09:51,174 dhe ndoshta ne tani mund të fillojnë të quajmë këto prona fushat. 201 00:09:51,174 --> 00:09:53,590 Por pronat kurrë me të vërtetë të qëndrojë më vete, apo jo? 202 00:09:53,590 --> 00:09:56,410 Nëse unë të përcaktojë një strukturë për një makinë si kjo me pas dy 203 00:09:56,410 --> 00:10:00,750 fields ose pronat, një një numër i plotë për vitin e makinave 204 00:10:00,750 --> 00:10:04,290 dhe një tjetër një karakter 10 string për modelin e makinës, 205 00:10:04,290 --> 00:10:07,150 Unë mund të them diçka si kjo, Unë mund të deklarojë një ndryshore të re 206 00:10:07,150 --> 00:10:10,080 të tipit makinave struct Herbie. 207 00:10:10,080 --> 00:10:13,730 Dhe atëherë unë mund të them diçka si herbie.year barabartë 1,963, 208 00:10:13,730 --> 00:10:15,850 dhe herbie.model barabartë Beetle. 209 00:10:15,850 --> 00:10:17,000 Eshte ne rregull. 210 00:10:17,000 --> 00:10:19,680 Unë jam duke përdorur fushat në Konteksti i strukturës, 211 00:10:19,680 --> 00:10:22,290 por unë kurrë nuk mund vetëm thonë diçka si kjo. 212 00:10:22,290 --> 00:10:22,790 E drejtë? 213 00:10:22,790 --> 00:10:26,836 Unë nuk mund të përdorë emrin terren pavarur nga strukturës. 214 00:10:26,836 --> 00:10:28,210 Kjo është lloj i një gjë themelore. 215 00:10:28,210 --> 00:10:32,990 >> Pra fusha të qenit themelore për strukturat C 216 00:10:32,990 --> 00:10:39,050 janë shumë të ngjashme me pronat e qenit themelore për objektet JavaScript. 217 00:10:39,050 --> 00:10:42,080 Por, ajo që i bën ato veçanërisht interesante 218 00:10:42,080 --> 00:10:46,230 është se objektet mund të ketë çfarë quhen metoda, të cilat janë me të vërtetë 219 00:10:46,230 --> 00:10:50,730 vetëm një fjalë dashuroj për funksionet që janë të pandara në objekt si. 220 00:10:50,730 --> 00:10:55,340 Pra, kjo është një funksion që mund të jetë vetëm quajtur në kontekstin e një objekti. 221 00:10:55,340 --> 00:10:59,200 Vetëm një objekt që ka përcaktuar ky funksion brenda saj, 222 00:10:59,200 --> 00:11:02,020 në qoftë se ju mendoni për një struct, funksioni 223 00:11:02,020 --> 00:11:05,720 është përcaktuar brenda ato definimin formatimin e teksteve kaçurrel të strukturës. 224 00:11:05,720 --> 00:11:07,980 Pra, kjo vetëm do të thotë diçka me strukturën. 225 00:11:07,980 --> 00:11:10,960 Dhe kjo është lloj i asaj që ne jemi duke bërë këtu me objekte dhe metodat. 226 00:11:10,960 --> 00:11:13,580 Kjo është në thelb si ne jemi përcaktimin e një funksion që 227 00:11:13,580 --> 00:11:16,670 vetëm ka kuptim në një objekt të veçantë, dhe kështu që ne 228 00:11:16,670 --> 00:11:19,440 thërrasë se një metodë e objektit. 229 00:11:19,440 --> 00:11:23,180 Dhe ne kurrë nuk mund të telefononi atë funksion i pavarur e objektit, 230 00:11:23,180 --> 00:11:29,260 ashtu si ne nuk mund të themi vit apo model pavarur nga struct në C. 231 00:11:29,260 --> 00:11:32,300 >> Pra programimit funksional paradigma duket diçka si kjo. 232 00:11:32,300 --> 00:11:35,450 Funksioni dhe pastaj kur ju të kalojë në objekt si një parametër. 233 00:11:35,450 --> 00:11:38,650 Në një programimin e orientuar nga objekti gjuhë, ky lloj i merr 234 00:11:38,650 --> 00:11:43,464 kthyer, dhe ne do të mendojmë për ajo pëlqen kjo, object.function. 235 00:11:43,464 --> 00:11:45,380 Pra, kjo lloj që dot Operatori përsëri duke nënkuptuar 236 00:11:45,380 --> 00:11:49,540 se kjo është një lloj i pronës ose atribut i objektit vetë. 237 00:11:49,540 --> 00:11:53,240 Por kjo është ajo që një objekt orientuar gjuhë programimi 238 00:11:53,240 --> 00:11:57,150 mund të bëni për të bërë një funksion telefononi në një metodë, përsëri, e cila 239 00:11:57,150 --> 00:12:00,260 është vetëm një fjalë të veçantë për një funksion që është e natyrshme për një objekt. 240 00:12:00,260 --> 00:12:03,440 Kjo është ajo që Sintaksa mund të duket si. 241 00:12:03,440 --> 00:12:09,360 Dhe kështu që ne do të fillojmë të shohim disa prej kjo në kontekstin e JavaScript. 242 00:12:09,360 --> 00:12:12,470 >> Ju gjithashtu mund të mendoni për një objekt lloj si një grup asociative, 243 00:12:12,470 --> 00:12:14,160 të cilat ne jemi të njohur me nga PHP. 244 00:12:14,160 --> 00:12:17,720 Mos harroni një grup shoqerues lejon ne të kemi çifte kyçe me vlerë, në vend 245 00:12:17,720 --> 00:12:23,040 të paturit e indekseve 0, një, dy, tre, dhe kështu me radhë si ne jemi përdorur për të nga C 246 00:12:23,040 --> 00:12:23,940 vargjeve. 247 00:12:23,940 --> 00:12:27,472 Vargjeve asociative mund të hartë fjalë, si në PHP video, 248 00:12:27,472 --> 00:12:29,180 ne ishim duke folur për toppings e pizzas. 249 00:12:29,180 --> 00:12:31,180 Dhe kështu që ne kishim një grup quajtur pizzas, dhe ne 250 00:12:31,180 --> 00:12:36,670 kishte djathi ishte një kyç dhe 8,99 $ ishte vlera, dhe pastaj spec djegës ishte kyç, 251 00:12:36,670 --> 00:12:39,190 9,99 $ ishte një vlerë, dhe kështu me radhë. 252 00:12:39,190 --> 00:12:43,300 Dhe kështu që ne mund të mendojmë për një kundërshtojnë lloj i ngjashëm me një associative 253 00:12:43,300 --> 00:12:43,840 array. 254 00:12:43,840 --> 00:12:47,020 Dhe kështu kjo sintaksë këtu do të krijonte një objekt të ri 255 00:12:47,020 --> 00:12:50,950 quajtur Herbie me dy pronat brendësi të saj. 256 00:12:50,950 --> 00:12:57,310 Vit, e cila është caktuar vlera 1963, dhe model, e cila është caktuar string 257 00:12:57,310 --> 00:12:58,140 Beetle. 258 00:12:58,140 --> 00:13:01,770 >> Dhe vini re këtu se unë jam duke përdorur Kuotat e vetme në JavaScript. 259 00:13:01,770 --> 00:13:05,570 Ju mund të përdorni kuotat e vetme apo të dyfishtë kur ju jeni duke folur në lidhje me vargjet. 260 00:13:05,570 --> 00:13:07,772 Është vetëm konvencionale rasti që herë më 261 00:13:07,772 --> 00:13:10,230 kur ju jeni me shkrim JavaScript, ju vetëm përdorni kuotat e vetme. 262 00:13:10,230 --> 00:13:15,050 Por unë mund të përdorni kuotat e dyfishtë këtu, dhe që do të jetë e përkryer gjobë, si dhe. 263 00:13:15,050 --> 00:13:17,470 >> Pra, mbani mend se si në PHP kemi pasur këtë nocion 264 00:13:17,470 --> 00:13:22,730 e një për çdo lak që do të na lejojë për të iterate mbi të gjitha të vlerës kyçe 265 00:13:22,730 --> 00:13:25,270 palë një associative grup, sepse ne 266 00:13:25,270 --> 00:13:29,050 nuk e kanë këtë aftësi të iterate me 0, një, dy, tre, kater, 267 00:13:29,050 --> 00:13:30,710 dhe kështu me radhë? 268 00:13:30,710 --> 00:13:35,010 JavaScript është diçka shumë të ngjashme, por kjo nuk është quajtur një për çdo lak, 269 00:13:35,010 --> 00:13:38,960 është quajtur një për në sythe. 270 00:13:38,960 --> 00:13:42,890 Pra, nëse unë i thashë mua si kjo, për çelës var në objekt, 271 00:13:42,890 --> 00:13:48,670 kjo është lloj i ngjashëm me thënë për çdo gjë si diçka. 272 00:13:48,670 --> 00:13:53,850 Por të gjitha unë jam duke bërë këtu është iterating nëpër të gjitha çelësat e objektit tim. 273 00:13:53,850 --> 00:13:56,070 Dhe në brendësi të kaçurrel formatimin e teksteve atje, unë do të 274 00:13:56,070 --> 00:14:03,410 përdorni objekt kllapave kyç për t'iu referuar vlerës në atë vend kyç. 275 00:14:03,410 --> 00:14:05,400 >> Përndryshe, nuk ka madje edhe një mënyrë tjetër. 276 00:14:05,400 --> 00:14:10,880 Në qoftë se unë vetëm kujdesen vetëm për Vlerat, unë mund të them për çelësin e objektit, 277 00:14:10,880 --> 00:14:12,360 dhe vetëm përdorni kyç brenda. 278 00:14:12,360 --> 00:14:17,240 Pra, për çelës var në objekt, unë kam për të përdorur e objektit kllapa katrore 279 00:14:17,240 --> 00:14:19,340 kyç brenda lak. 280 00:14:19,340 --> 00:14:24,580 Për var çelësin e objektit, unë mund të vetëm përdorni kyç brenda lak, 281 00:14:24,580 --> 00:14:29,040 sepse unë jam vetëm në mënyrë specifike duke folur për vlerat atje. 282 00:14:29,040 --> 00:14:32,630 >> Pra, le të marrin një ndoshta shikoni në ndryshim 283 00:14:32,630 --> 00:14:35,670 vetëm për të ju tregojnë shpejt dallimi në mes të katër 284 00:14:35,670 --> 00:14:40,730 në dhe për të me një shumë të veçantë grup, të cilat ne kemi këtu, javë array. 285 00:14:40,730 --> 00:14:43,616 Kështu që unë kam për të gjetur një koleksion të ri që kam mbushur me shtatë tela, 286 00:14:43,616 --> 00:14:46,240 Hënë, e martë, e mërkurë, Enjte, e premte, e shtunë, e diel. 287 00:14:46,240 --> 00:14:50,530 Dhe unë dua të tani iterate nëpër këtë grup, 288 00:14:50,530 --> 00:14:53,090 shtypjen nga informata të caktuara. 289 00:14:53,090 --> 00:14:58,780 Nëse unë përdorni një për në lak të shtypura nga informatat, 290 00:14:58,780 --> 00:15:00,710 çfarë mendoni se unë jam duke shkuar për të marrë? 291 00:15:00,710 --> 00:15:01,710 E pra, le të marrin një sy. 292 00:15:01,710 --> 00:15:05,300 Dhe para se të hidhen mbi në dritaren time shfletuesit, 293 00:15:05,300 --> 00:15:08,090 vetëm e di se console.log është lloj i një 294 00:15:08,090 --> 00:15:10,630 mënyrë për të bërë një F shtypura në JavaScript. 295 00:15:10,630 --> 00:15:12,040 Por ajo që është konsol? 296 00:15:12,040 --> 00:15:14,940 E pra, kjo është ajo që ne jemi duke shkuar për të shkuar të marrë një vështrim në të drejtë tani. 297 00:15:14,940 --> 00:15:16,850 >> OK, kështu që ne jemi përsëri këtu në dritaren time shfletuesit, 298 00:15:16,850 --> 00:15:19,410 dhe unë jam duke shkuar për të hapur up mjetet e mia zhvilluesi. 299 00:15:19,410 --> 00:15:22,290 Përsëri, unë jam vetëm duke goditur F12 për të hapur mjetet zhvilluesi i saj. 300 00:15:22,290 --> 00:15:25,670 Dhe vini re se këtu në Top Unë e kam zgjedhur tastierë. 301 00:15:25,670 --> 00:15:28,480 Pra, kjo është nocioni e një zhvilluesi tastierë, 302 00:15:28,480 --> 00:15:30,500 dhe kjo do të na lejojë që të shtypura informacion jashtë, 303 00:15:30,500 --> 00:15:33,000 lloj si terminalit, por si ju do të shihni një pak më vonë, 304 00:15:33,000 --> 00:15:37,720 ne gjithashtu mund të shkruani informacionin në për të bashkëvepruar me faqen tonë të internetit. 305 00:15:37,720 --> 00:15:42,320 Unë jam duke shkuar për të zoom në pak këtu, dhe unë jam gonna tani klikoni mbi në provë. 306 00:15:42,320 --> 00:15:45,230 Dhe katër në test-- unë nuk jam gonna të ju tregojnë kodin për atë të drejtë tani, 307 00:15:45,230 --> 00:15:47,479 por ju do të merrni atë në qoftë se ju shkarko kodin burim që 308 00:15:47,479 --> 00:15:50,380 është e lidhur me këtë video-- është vetëm se për në lak 309 00:15:50,380 --> 00:15:52,610 që pamë vetëm një i dyti më parë në rrëshqitje. 310 00:15:52,610 --> 00:15:54,810 >> Kështu që unë jam gonna të klikoni që button, dhe gjatë këtu, 311 00:15:54,810 --> 00:15:58,440 këtu është ajo që e ka shtypur jashtë në konsol, 0, një, dy, tre, katër, pesë, 312 00:15:58,440 --> 00:15:58,940 gjashtë. 313 00:15:58,940 --> 00:16:02,490 Unë nuk e shtypura nga të dhënat brenda këtyre vende array, 314 00:16:02,490 --> 00:16:05,180 sepse kam përdorur një në lak. 315 00:16:05,180 --> 00:16:10,670 Dhe në brendësi të trupit të lak, I shtypura vetëm jashtë çelës nuk kundërshtojnë kyç. 316 00:16:10,670 --> 00:16:18,600 Por në qoftë se unë tani të qartë tim tastierë, dhe unë kaloni në për të testit, dhe katër të testit 317 00:16:18,600 --> 00:16:22,500 Unë them ta përdor për të lak në vend dhe të shtypura jashtë kyç, 318 00:16:22,500 --> 00:16:28,079 në qoftë se unë të klikoni atë, tani unë jam marrë më të Elementet aktuale brenda e objektit tim 319 00:16:28,079 --> 00:16:29,120 ose grup im në këtë rast. 320 00:16:29,120 --> 00:16:31,760 Grup im i ditëve të javës. 321 00:16:31,760 --> 00:16:33,480 I shtypur jashtë hënë, Martë, e mërkurë. 322 00:16:33,480 --> 00:16:36,930 Pra, kjo është diferenca midis një në lak, e cila shtyp nga 323 00:16:36,930 --> 00:16:43,410 vetëm çelësat në qoftë se ju vetëm përdorni butonin e në brendësi të trupit të lak, 324 00:16:43,410 --> 00:16:46,850 dhe një për të lak, e cila shtyp nga vlerat në qoftë se ju përdorni vetëm 325 00:16:46,850 --> 00:16:48,870 çelësi brenda trupit të lak. 326 00:16:48,870 --> 00:16:52,380 >> Të gjithë të drejtë, si nuk kemi tani të fillojë të lidh vargje dhe ndoshta përzierje deri 327 00:16:52,380 --> 00:16:57,220 disa variabla me interpolation si ne kemi qenë në gjendje të bëjë në PHP? 328 00:16:57,220 --> 00:16:59,410 E pra, ne jemi mjaft të njohur me këtë nga PHP. 329 00:16:59,410 --> 00:17:04,109 Kjo është se si ne do të bëjmë atë duke përdorur dot operator të lidh vargjet. 330 00:17:04,109 --> 00:17:06,260 Në JavaScript, edhe pse, ne fakt përdorin diçka 331 00:17:06,260 --> 00:17:09,290 quhet operatori plus, e cila është ndoshta edhe pak më shumë 332 00:17:09,290 --> 00:17:10,470 intuitive, e drejtë? 333 00:17:10,470 --> 00:17:12,609 Ne jemi duke shtuar një bandë e vargjet bashku. 334 00:17:12,609 --> 00:17:14,520 Pra, le kokën mbrapa mbi dhe shikoni se çfarë ky 335 00:17:14,520 --> 00:17:18,693 do të shtypura në qoftë se ne jemi duke u përpjekur për të shtypur jashtë të gjithë informacionin në javë rrjet. 336 00:17:18,693 --> 00:17:20,859 Të gjithë të drejtë, kështu që nën këtu nën string varg, 337 00:17:20,859 --> 00:17:24,822 Kam dy opsione, ndërtesë string V1 dhe pastaj ndërtimin e string V2. 338 00:17:24,822 --> 00:17:26,530 Dhe ne do të shohim se pse ne duhet V2 në një të dytë. 339 00:17:26,530 --> 00:17:28,610 Por unë jam gonna të klikoni në Ndërtesa V1 string, e cila 340 00:17:28,610 --> 00:17:30,360 është kodi ishim vetëm duke marrë një vështrim në, 341 00:17:30,360 --> 00:17:32,980 console.log me të gjitha pluses. 342 00:17:32,980 --> 00:17:35,910 Le të shohim nëse ky shtyp se çfarë ne presim. 343 00:17:35,910 --> 00:17:39,939 >> E hëna është dita e numrit 01 të javës, Marta është numri dita e 11 e javës. 344 00:17:39,939 --> 00:17:41,730 E pra, çfarë isha duke u përpjekur për të bërë nuk ishte marrë 345 00:17:41,730 --> 00:17:46,280 ajo të shtypura nga e hënë është numri ditë një, e martë është dita numri dy. 346 00:17:46,280 --> 00:17:50,140 Por kjo duket si unë jam gjithmonë shtypjen nga një të tillë. 347 00:17:50,140 --> 00:17:51,260 E pra, pse është kjo? 348 00:17:51,260 --> 00:17:55,600 E pra, ajo rezulton, të marrë një sy në këtë copë të vogël të kodit këtu. 349 00:17:55,600 --> 00:18:00,160 Vini re se ne jemi duke përdorur plus operator në dy kontekste të ndryshme. 350 00:18:00,160 --> 00:18:03,221 >> Dhe kështu që këtu është ku ndoshta gjërat se ne kemi qenë lloj i thënë: 351 00:18:03,221 --> 00:18:03,970 oh, kjo është aq e madhe. 352 00:18:03,970 --> 00:18:05,910 Ne nuk merremi me lloje të të dhënave më. 353 00:18:05,910 --> 00:18:08,220 Por këtu është ajo ku fakti se kemi humbur lloje të të dhënave 354 00:18:08,220 --> 00:18:10,960 në fakt mund të jetë pak një problem për ne. 355 00:18:10,960 --> 00:18:16,260 Tani që operatori plus është përdorur për të lidh vargje dhe shtoni numra 356 00:18:16,260 --> 00:18:19,550 së bashku, JavaScript ka për të bërë mend tij më të mirë 357 00:18:19,550 --> 00:18:22,030 si për atë që unë dua që ajo të bëjë për mua. 358 00:18:22,030 --> 00:18:23,900 Dhe në këtë rast, ajo mendoi gabuar. 359 00:18:23,900 --> 00:18:29,340 Ajo ditë sapo concatenated, e cila do të jetë 0, një, dy, tre, kater, pese ose gjashte, 360 00:18:29,340 --> 00:18:32,060 dhe pastaj ajo vetëm concatenated se dhe pastaj concatenated një. 361 00:18:32,060 --> 00:18:35,020 Kjo në fakt nuk shtoni ato së bashku. 362 00:18:35,020 --> 00:18:37,320 Dhe kështu këto gjuhë, PHP dhe JavaScript, 363 00:18:37,320 --> 00:18:39,196 se nxjerrje larg ky nocion i llojeve, 364 00:18:39,196 --> 00:18:40,820 ju nuk duhet të merren me atë më. 365 00:18:40,820 --> 00:18:43,600 Ata ende nuk kanë lloje nën kapuç. 366 00:18:43,600 --> 00:18:46,780 Dhe ne mund të, në situata të si ky, levave për këtë fakt 367 00:18:46,780 --> 00:18:49,240 duke thënë diçka si ndoshta kjo, e cila 368 00:18:49,240 --> 00:18:53,210 është thënë JavaScript, nga mënyrë, trajtojnë këtë si një numër i plotë, 369 00:18:53,210 --> 00:18:57,100 nuk e trajtojnë atë si një varg, madje edhe pse ne jemi duke përzier së bashku strings 370 00:18:57,100 --> 00:18:58,940 dhe integers këtu. 371 00:18:58,940 --> 00:19:02,204 >> Kjo është vetëm një nga ato gjëra që duket aq e madhe në kontekstin e 372 00:19:02,204 --> 00:19:04,120 që ne nuk duhet të merret me llojet më, 373 00:19:04,120 --> 00:19:05,828 por ndonjëherë ju do të drejtuar në një situatë 374 00:19:05,828 --> 00:19:09,110 tamam si ky, ku fakti se ju nuk keni kontroll mbi llojet 375 00:19:09,110 --> 00:19:11,220 mund të dështojnë për ju në qoftë se ju nuk jeni të kujdesshëm. 376 00:19:11,220 --> 00:19:18,285 Dhe kështu që në qoftë se ne të hapet përsëri mbi të IDE, unë jam duke shkuar për të pastruar nga tim konsol përsëri, 377 00:19:18,285 --> 00:19:20,660 dhe unë jam duke shkuar për të klikoni varg Ndërtesa version dy, e cila 378 00:19:20,660 --> 00:19:23,052 është vendi ku unë përdorin këtë funksion Parse int. 379 00:19:23,052 --> 00:19:25,260 Tani ajo është shtypje nga informatat që unë jam duke pritur. 380 00:19:25,260 --> 00:19:29,330 Hënës numër një ditë, e martë është dita numri dy, dhe kështu me radhë. 381 00:19:29,330 --> 00:19:31,170 >> Pra, le të flasim për funksionet përsëri. 382 00:19:31,170 --> 00:19:34,790 I premtoi ne do të flasim për anonim funksionet dhe tani konteksti për këtë 383 00:19:34,790 --> 00:19:36,360 ka ardhur në fund. 384 00:19:36,360 --> 00:19:39,980 Pra, para se të bëjmë këtë, le të flasim përsëri rreth vargjeve për vetëm një të dytë. 385 00:19:39,980 --> 00:19:42,120 Pra vargjeve janë të veçantë Rasti i një objekti. 386 00:19:42,120 --> 00:19:45,180 Në fakt, çdo gjë në JavaScript është në fakt një objekt. 387 00:19:45,180 --> 00:19:47,190 Pra, funksionet janë një rast i veçantë i një objekti, 388 00:19:47,190 --> 00:19:49,770 integers janë një të veçantë Rasti i një objekti, 389 00:19:49,770 --> 00:19:52,152 por vargjeve specifike kanë një numër të metodave. 390 00:19:52,152 --> 00:19:55,110 Mbani mend, sepse ata janë objekte, ata mund të kenë pronat dhe metodat. 391 00:19:55,110 --> 00:19:58,600 Ata kanë një numër të metodave që mund të aplikohet në ato objekte. 392 00:19:58,600 --> 00:20:01,197 Ka një metodë të quajtur madhësia, array.size, 393 00:20:01,197 --> 00:20:03,030 i cili do të kthehet në ju si ju mund të presin 394 00:20:03,030 --> 00:20:05,120 numri i elementeve në grup tuaj. 395 00:20:05,120 --> 00:20:08,480 array.pop, lloj si nocioni ynë i popping jashtë 396 00:20:08,480 --> 00:20:11,110 e një pirg, në qoftë se ju kujtohet nga oxhaqet video tonë, 397 00:20:11,110 --> 00:20:13,810 heq elementin e fundit nga array. 398 00:20:13,810 --> 00:20:17,110 array.push shton një element të ri në fund të një grup. 399 00:20:17,110 --> 00:20:20,910 array.shift është lloj i si DQ, ajo splices jashtë 400 00:20:20,910 --> 00:20:23,610 elementi i parë i një grup. 401 00:20:23,610 --> 00:20:27,549 >> Por ka edhe një tjetër të veçantë Metoda e një grup të quajtur hartë. 402 00:20:27,549 --> 00:20:29,340 Dhe kjo është lloj i një koncept interesant. 403 00:20:29,340 --> 00:20:30,930 Pra, çfarë është ideja e një hartë? 404 00:20:30,930 --> 00:20:33,880 Ju në fakt do të shihni këtë në disa gjuhë të tjera, 405 00:20:33,880 --> 00:20:38,550 dhe ne nuk jemi duke folur për një lloj hartografët hartë këtu, 406 00:20:38,550 --> 00:20:41,480 ne jemi duke folur për një funksion të hartës. 407 00:20:41,480 --> 00:20:44,110 Në kontekstin ne jemi duke folur për këtu, një hartë 408 00:20:44,110 --> 00:20:47,950 është një operacion që ne të veçantë mund të kryejnë në një sërë 409 00:20:47,950 --> 00:20:51,630 për të aplikuar një funksion të veçantë në çdo element të kësaj grup. 410 00:20:51,630 --> 00:20:55,190 dhe kështu që ne do të thonë në ky rast, ndoshta array.map, 411 00:20:55,190 --> 00:21:00,330 dhe në brendësi të saj, ne jemi duke kaluar në hartë është një funksion që duam 412 00:21:00,330 --> 00:21:02,430 për t'u aplikuar në çdo element të vetme. 413 00:21:02,430 --> 00:21:07,299 Pra, kjo është lloj i ngjashëm me përdorimin e një lak për të iterate mbi çdo element 414 00:21:07,299 --> 00:21:09,340 dhe të aplikojnë një të veçantë funksionojë për çdo element, 415 00:21:09,340 --> 00:21:14,830 sapo JavaScript e ka ndërtuar në këtë Nocioni i një hartë që mund të zbatohet. 416 00:21:14,830 --> 00:21:19,700 Dhe kjo është një kontekst i madh për flasin për një funksion anonim. 417 00:21:19,700 --> 00:21:22,370 >> Pra, le të thonë se ne kemi ky grup i integers. 418 00:21:22,370 --> 00:21:25,370 Ajo që quhet Nums, dhe atë e mori pesë gjëra në të, një, dy, tre, katër, 419 00:21:25,370 --> 00:21:26,410 pesë. 420 00:21:26,410 --> 00:21:30,620 Tani unë dua të ndajë disa funksion në këtë grup. 421 00:21:30,620 --> 00:21:34,337 Unë dua që të ketë një funksion të aplikoni në çdo element të vektorit. 422 00:21:34,337 --> 00:21:37,420 E pra, le të themi se ajo që unë dua të bëni është vetëm të dyfishtë të gjitha elementet. 423 00:21:37,420 --> 00:21:42,520 Ajo që unë mund të bëj është vetëm përdorni një lak për var I është e barabartë me 0, I është më pak se 424 00:21:42,520 --> 00:21:47,390 ose e barabartë me 4, I plus, plus, dhe pastaj dyfishohet çdo numër të vetëm. 425 00:21:47,390 --> 00:21:49,580 Por unë mund të bëj diçka si kjo. 426 00:21:49,580 --> 00:21:53,420 Unë mund të them Nums ishte më parë një dy tre Katër Pesë, 427 00:21:53,420 --> 00:21:58,310 tani, edhe pse, unë do të doja që ju të aplikoni një hartë mbi këtë grup 428 00:21:58,310 --> 00:22:00,400 ku unë do të doja t'ju për të dyfishuar çdo numër. 429 00:22:00,400 --> 00:22:02,540 Dhe kjo është pikërisht çfarë po ndodh këtu. 430 00:22:02,540 --> 00:22:06,870 Por vini re atë që unë jam duke kaluar në si argumenti në hartë. 431 00:22:06,870 --> 00:22:09,080 Ky është një funksion anonim. 432 00:22:09,080 --> 00:22:11,140 Dhe vini re unë nuk kam dhënë ky funksion një emër, 433 00:22:11,140 --> 00:22:13,290 Unë e kam dhënë vetëm atë një listë parametër. 434 00:22:13,290 --> 00:22:16,370 Dhe kështu që ky është një shembull i një funksion anonim. 435 00:22:16,370 --> 00:22:21,270 >> Ne në përgjithësi nuk do të thërrasë këtë Funksioni jashtë kontekstit të hartës. 436 00:22:21,270 --> 00:22:24,110 Ne jemi duke e përkufizuar atë si një parametër në hartë, dhe kështu ne nuk të vërtetë 437 00:22:24,110 --> 00:22:27,910 duhet të ketë një emër për atë nëse vetmja gjë që kujdeset për është harta 438 00:22:27,910 --> 00:22:30,339 dhe kjo është e përcaktuar të drejtë aty brenda hartë. 439 00:22:30,339 --> 00:22:31,880 Dhe kështu kjo është një funksion anonim. 440 00:22:31,880 --> 00:22:34,680 Ne nuk kemi qenë në gjendje për të bërë këtë më parë. 441 00:22:34,680 --> 00:22:38,400 Harta disa funksion që pranon një parametër, num, 442 00:22:38,400 --> 00:22:41,890 dhe se çfarë funksioni ka po kthehet Num herë 2. 443 00:22:41,890 --> 00:22:45,330 Dhe kështu pas kësaj mapping është zbatuar, 444 00:22:45,330 --> 00:22:50,090 kjo është ajo që tani duket Nums si, dy, katër, gjashtë, tetë, 10. 445 00:22:50,090 --> 00:22:52,090 Dhe ne do të pop mbi të tim dritare të shfletuesit dhe vetëm 446 00:22:52,090 --> 00:22:55,240 hidhini një sy në këtë shumë shpejt si. 447 00:22:55,240 --> 00:22:58,000 >> Kështu që unë kam një buton këtu në faqen time në shtëpi të quajtur dyfishtë. 448 00:22:58,000 --> 00:23:03,570 Dhe kur unë klikoni dy herë, dhe kjo tregon mua para se të ishte një, dy, tre, katër, 449 00:23:03,570 --> 00:23:07,250 pesë pas dy, katër, gjashtë, tetë, 10. 450 00:23:07,250 --> 00:23:11,930 Dhe në qoftë se unë kthehem dhe klikoni dyfishtë përsëri, dy, katër, gjashtë, tetë, 10. 451 00:23:11,930 --> 00:23:17,400 Dhe pastaj pas, katër, tetë, 12, 16, dhe pastaj 20. 452 00:23:17,400 --> 00:23:20,440 Dhe çfarë jam duke bërë në këtë funksion? 453 00:23:20,440 --> 00:23:25,210 E pra, në qoftë se ne vetëm pop mbi të IDE, dhe Unë tërheq lart funksionin tim anonim, këtu 454 00:23:25,210 --> 00:23:28,780 në përputhje shtatë përmes 13, unë jam duke bërë një punë pak dashuroj këtu, 455 00:23:28,780 --> 00:23:32,240 por unë jam vetëm shtypje nga çfarë është aktualisht në grup. 456 00:23:32,240 --> 00:23:36,580 Pastaj në linjë 16, 17, dhe 18, nuk ka hartë ime. 457 00:23:36,580 --> 00:23:40,930 Kjo është ajo ku unë jam duke aplikuar këtë dyfishim Funksioni për çdo element të vetëm. 458 00:23:40,930 --> 00:23:43,530 Dhe pastaj pak më poshtë, Unë jam vetëm duke bërë të njëjtën gjë 459 00:23:43,530 --> 00:23:46,640 Unë kam qenë bërë përpara, me përjashtim tani unë jam i shtypjen nga përmbajtjen e array 460 00:23:46,640 --> 00:23:48,167 më pas. 461 00:23:48,167 --> 00:23:50,500 Por të gjitha unë kam bërë këtu është vetëm përdorni një funksion anonim 462 00:23:50,500 --> 00:23:53,640 të ndajë nëpër një rrjet të tërë. 463 00:23:53,640 --> 00:23:58,466 >> Pra, një shumë temë e madhe për të folur rreth në JavaScript është nocioni i një ngjarjeje. 464 00:23:58,466 --> 00:24:01,590 Një ngjarje është diçka që ndodh vetëm kur një përdorues ndërvepron me web tuaj 465 00:24:01,590 --> 00:24:04,715 faqe, kështu që ndoshta ata të klikoni diçka, apo ndoshta faqe është përfunduar ngarkimit, 466 00:24:04,715 --> 00:24:07,200 apo ndoshta ata kanë lëvizur miun e tyre mbi diçka, 467 00:24:07,200 --> 00:24:09,290 ose ata kanë shtypur diçka në një fushë të dhëna. 468 00:24:09,290 --> 00:24:14,260 Të gjitha këto gjëra janë ngjarje që po ndodhin në faqen tonë të internetit. 469 00:24:14,260 --> 00:24:17,460 Dhe JavaScript ka të Aftësia për të mbështetur diçka 470 00:24:17,460 --> 00:24:21,760 quajtur një mbajtës ngjarje, e cila është një funksion callback që 471 00:24:21,760 --> 00:24:23,329 i përgjigjet një ngjarje HTML. 472 00:24:23,329 --> 00:24:24,620 Dhe çfarë është një funksion callback? 473 00:24:24,620 --> 00:24:27,328 E pra, kjo është zakonisht vetëm një tjetër të përmendur për një funksion anonim. 474 00:24:27,328 --> 00:24:30,170 Kjo është një funksion që përgjigjet në një ngjarje. 475 00:24:30,170 --> 00:24:34,130 Dhe kjo është ajo ku kemi ardhur në Ideja e detyrueshme funksione të caktuara 476 00:24:34,130 --> 00:24:38,060 me një atribut të veçantë HTML. 477 00:24:38,060 --> 00:24:41,420 Shumica e elementeve kanë html mbështetje për një atribut 478 00:24:41,420 --> 00:24:45,170 se ne nuk flasim për në html Video për diçka si në klik 479 00:24:45,170 --> 00:24:50,540 ose më rri në pritje ose në ngarkesë, të gjitha këto ngjarje 480 00:24:50,540 --> 00:24:53,120 që ju pastaj mund të shkruani funksionet që kanë të bëjnë me ato ngjarje 481 00:24:53,120 --> 00:24:56,090 kur këto ngjarje ndodhin në faqen tuaj web. 482 00:24:56,090 --> 00:24:59,170 >> Dhe kështu ndoshta html tuaj duket diçka si kjo. 483 00:24:59,170 --> 00:25:02,240 Dhe unë kam dy butona këtu, një buton dhe buton dy, 484 00:25:02,240 --> 00:25:04,620 dhe këtu unë kam aktualisht asgjë të përcaktuara, 485 00:25:04,620 --> 00:25:11,170 por ky është vendi ku atribut në click është me sa duket një pjesë e tag tim HTML. 486 00:25:11,170 --> 00:25:15,220 Pra, me sa duket, kur unë të përcaktojë se çfarë është ndodh brenda këtë atribut, 487 00:25:15,220 --> 00:25:18,590 ajo do të jetë një JavaScript funksion që i përgjigjet ngjarjes 488 00:25:18,590 --> 00:25:24,360 me sa duket i klikuar në buton një ose dy buton. 489 00:25:24,360 --> 00:25:28,580 >> Çfarë është lloj i ftohtë në lidhje me këtë është se ne mund të shkruani një mbajtës gjenerike ngjarje. 490 00:25:28,580 --> 00:25:32,370 Dhe kjo ngjarje do Handler të krijojë një objekt ngjarje. 491 00:25:32,370 --> 00:25:37,000 Dhe objekti ngjarja do të na tregojë cili prej dy butonave është klikuar. 492 00:25:37,000 --> 00:25:38,064 Tani se si e bën këtë punë? 493 00:25:38,064 --> 00:25:39,730 E pra, kjo mund të duket diçka si kjo. 494 00:25:39,730 --> 00:25:44,860 Pra, ne së pari do të përcaktojë butonat tona të ketë një përgjigje për callback 495 00:25:44,860 --> 00:25:47,470 funksion që do të quhet kur klikohet butoni, 496 00:25:47,470 --> 00:25:49,520 ne do të thërrasë ngjarje emrin vigjilent. 497 00:25:49,520 --> 00:25:53,320 Dhe vini re në të dyja rastet ne jeni të duke kaluar në këtë parametër ngjarje. 498 00:25:53,320 --> 00:25:55,460 Pra, ne e quajmë këtë funksion ose kur ky funksion 499 00:25:55,460 --> 00:26:00,330 është shkaktuar nga ngjarje ndodh, ajo do të krijojë këtë objekt ngjarje 500 00:26:00,330 --> 00:26:03,300 dhe të kalojë atë si një parametër për të njoftuar emrin. 501 00:26:03,300 --> 00:26:07,270 Dhe kjo ngjarje është objekt do të përmbajnë informacion 502 00:26:07,270 --> 00:26:09,800 për të cilin buton është klikuar. 503 00:26:09,800 --> 00:26:11,580 Dhe si e bën atë të bëjë këtë? 504 00:26:11,580 --> 00:26:13,654 E pra, kjo mund të duket diçka si kjo. 505 00:26:13,654 --> 00:26:15,570 Deri tani në veçantë mia JavaScript file, unë mund 506 00:26:15,570 --> 00:26:17,420 duhet të gjejnë këtë Funksioni Emri vigjilent, i cili 507 00:26:17,420 --> 00:26:19,500 përsëri e pranon këtë parametër ngjarje. 508 00:26:19,500 --> 00:26:24,640 Dhe pastaj këtu është vendi ku unë jam zbulimin i cili buton u shkaktua, 509 00:26:24,640 --> 00:26:28,100 shkas var barabartë ngjarje dot element burim. 510 00:26:28,100 --> 00:26:33,150 Cili ishte burimi që ka krijuar ky objekt ngjarje që u miratua në? 511 00:26:33,150 --> 00:26:36,390 Ishte kjo një buton apo ishte butonin dy? 512 00:26:36,390 --> 00:26:40,710 >> Dhe pastaj këtu të gjitha unë jam duke bërë është shtypjen nga trigger.innerhtml. 513 00:26:40,710 --> 00:26:43,860 E pra, në këtë rast, në këtë Konteksti, trigger.innerhtml 514 00:26:43,860 --> 00:26:45,940 është vetëm ajo që është shkruar në butonin. 515 00:26:45,940 --> 00:26:48,830 Kjo ndodh pikërisht kështu në qoftë se ne të kërcejnë përsëri për një të dytë, që do të 516 00:26:48,830 --> 00:26:51,670 të jetë ajo që është në mes të këtyre tags button. 517 00:26:51,670 --> 00:26:54,150 Ajo do të jetë një buton ose butonin dy. 518 00:26:54,150 --> 00:26:57,320 Dhe le të marrin një vështrim në si kjo mbajtës ngjarje do 519 00:26:57,320 --> 00:27:01,080 shikoni nëse do të kishim të konkurrojnë në praktikë. 520 00:27:01,080 --> 00:27:03,850 >> Pra, para së gjithash, ju keni hapur events.js, 521 00:27:03,850 --> 00:27:06,517 që është skedari JavaScript ku Unë kam përkufizuar këtë funksion. 522 00:27:06,517 --> 00:27:08,558 Dhe si ju mund të shihni, është shumë e shumë pikërisht ajo 523 00:27:08,558 --> 00:27:10,230 ne vetëm e pa në rrëshqitje një të dytë më parë. 524 00:27:10,230 --> 00:27:14,890 Dhe unë do të shkoj për të home page ne kemi qenë duke përdorur. 525 00:27:14,890 --> 00:27:17,660 Dhe unë kam këtu buton një buton dhe dy. 526 00:27:17,660 --> 00:27:19,820 Dhe unë do të klikoni mbi një buton. 527 00:27:19,820 --> 00:27:23,930 Ju klikuar në butonin e parë, në qoftë se ju mund të shihni të drejtë këtu në gatishmëri. 528 00:27:23,930 --> 00:27:25,810 NE RREGULL. 529 00:27:25,810 --> 00:27:28,980 Kliko në butonin dy, ju klikuar në një buton dy. 530 00:27:28,980 --> 00:27:32,150 >> Pra, të dy butonat kanë njëjta thirrje funksion, e drejtë? 531 00:27:32,150 --> 00:27:35,840 Ata të dy ishin Emri vigjilent ngjarje, por ky objekt ngjarje 532 00:27:35,840 --> 00:27:41,900 që merr krijoi kur ne të klikoni mbi ajo na tregon cili buton është klikuar. 533 00:27:41,900 --> 00:27:44,650 Ne nuk kemi për të shkruar dy veçantë funksione ose të veprojë me të paturit 534 00:27:44,650 --> 00:27:46,470 për të kaluar çdo informacion shtesë. 535 00:27:46,470 --> 00:27:48,220 Ne jemi vetëm duke u mbështetur në çfarë JavaScript do të 536 00:27:48,220 --> 00:27:53,772 të bëjë për ne, e cila është për të krijuar që lloj i objektit ngjarje në emër tonë. 537 00:27:53,772 --> 00:27:56,730 Ka shumë më tepër për JavaScript se atë që ne kemi mbuluar në këtë video, 538 00:27:56,730 --> 00:27:58,521 por që këto themelor duhet të merrni ju 539 00:27:58,521 --> 00:28:00,690 mjaft rrugë të gjatë për të mësuar gjithçka që ju do të 540 00:28:00,690 --> 00:28:04,030 duhet të dini në lidhje me këtë Gjuha e interesante. 541 00:28:04,030 --> 00:28:05,000 Unë jam Doug Lloyd. 542 00:28:05,000 --> 00:28:07,010 Kjo është CS50. 543 00:28:07,010 --> 00:28:09,181