[Mūzikas atskaņošanai] Doug LLOYD: Tātad, tagad mēs esam veci plusi pie web programmēšana, vai ne? Un mēs esam uz vairākiem valodas atsevišķiem video. Un tagad pieņemsim darīt vairāk par vienu, JavaScript. Pirmā labā ziņa, JavaScript ir moderna programmēšana valoda daudz, piemēram, PHP, kuras sintakse ir atvasināts no C, tā ka ir laba vieta, kur sākt. Tas ir apmēram tikpat veca kā PHP, kā arī, kam ir apmēram apmēram 20 gadus. Tas tika izgudrots ap tajā pašā laikā kā PHP. Un JavaScript ir faktiski diezgan būtiski, lai lietotāja pieredzi no interneta. Patiesībā, tur ir trīs valodas, ka es teiktu veida veido lietotāju pieredzi mijiedarbojoties ar tīmekļa vietni, html, CSS un JavaScript. Un tāpēc tagad parunāsim Mazliet par JavaScript. Sliktās ziņas, lai gan, ar JavaScript ir ka tas nosaka daudz noteikumu par sevi, un tad tas saplīst tos. Un JavaScript patiesībā var būt veida izaicinājums, lai uzzinātu, jo tas ir pretēji C un PHP, kas ir ļoti strukturēts un ir ļoti strikti noteikumi par to, kā lietas var strādāt. JavaScript ir kind no gotten tik elastīgas ka varbūt lietas nav gatavojas strādāt tā, kā mēs sagaidām viņus, un varbūt mēs tiešām nevar iemācīties mūsu pirmā programmēšanas valoda kā JavaScript. Tātad, varbūt tāpēc, ka tas nav noteikt pati kādi noteikumi, un tas nav īsti īstenot labas kodēšanas paradumiem. Bet tagad mēs esam izstrādājuši cerams dažas labas kodēšanas paradumiem, un lai mēs varētu sākt iebrukt uz JavaScript mazliet. Lai rakstītu JavaScript, līdzīgi kā atvēršanu up C failu ar punktu C pagarināšanu vai PHP failu ar dot PHP paplašinājumu, viss, kas mums jādara, ir atvērt failu ar DOT js faila paplašinājums. Mums nav nepieciešams, lai būtu kāda īpaša atdalītājus kā mēs to darījām PHP. Ka veida leņķa kronšteins jautājuma zīme PHP ka mēs esam pieraduši no tā, starp citu mēs pateikt mūsu pārlūku ka tas, kas mums ir, ir JavaScript ir iekļaujot tas HTML tagu, un mēs redzēsim mazliet par kā to darīt, tikai brīdi. Otra lieta, kas padara JavaScript atšķirīgs, lai gan, ir tas, ka tā darbojas klienta pusē. Tātad atgādināt ar PHP, ka mēs varētu nekad redzēt PHP, kas uzsvēra mājas lapā. Ja mēs kādreiz uztverta page source, mēs būtu tikai redzēt html, kas bija ko rada šī PHP. Bet JavaScript darbojas klienta pusē. JavaScript darbojas jūsu datorā. Un tas ir iemesls, kāpēc jūs varat darīt Lietas, piemēram, pievienot bloķēšanu. Tiesības? Reklāmas bloķēšana parasti tiek veikta ar nogalināt visu JavaScript kas darbojas uz īpašu tīmekļa vietni. Un tāpēc, ka tas būtu palaist uz jūsu mašīna klienta pusē, Jūs varat vienkārši pārtraukt JavaScript braukšanai pilnībā. Tas arī nozīmē, ka tad, kad jūs izmantojat mājas lapu, kas ietver JavaScript, Jums ir jānosūta JavaScript avots kodu, kā daļu no jūsu HTTP atbildi klientam, ja tie to pieprasa. Un lai jūs varētu nav vēlaties izmantot JavaScript darīt tiešām jutīgas lietas patīk iet informāciju Par lietotāju paroles atpakaļ un tālāk, jo viņi patiešām notiek, lai saņemtu visu no avota kodu, ne tikai html, ka ir radīts, piemēram, būtu gadījumā ar teiksim PHP. Tātad, kā mēs arī JavaScript mūsu html sākt ar? Nu, līdzīgi kā CSS, faktiski, ir sava veida, kā mēs to darām šeit. Ar CSS mums ir stila tagus. Un iekšā no šiem stila tagiem, mēs varam definēt CSS stila lapas. Līdzīgi ar JavaScript mēs varam atvērt script tagus, cits html tag mēs neesam runāt par mūsu html video, un rakstīt JavaScript starp šiem skriptu tagiem. Tāpat, lai gan, piemēram, CSS, mēs varētu saistīt ar ārpus CSS failus un velciet tos mūsu programmu, ka veidā. Ar CSS mēs varam arī, atvainojiet, ar JavaScript mēs varam arī norādīt avotu atribūts skriptu tag saistīt JavaScript atsevišķi, tāpēc jums nav ir rakstīt to starp skriptu tagiem, mēs var saistīt to izmantošanā ka skripts tag kā arī. Un tāpat kā ar šo lietu ar CSS kur mēs ieteica, ka tas bija iespējams, Jūsu interesēs, lai rakstītu Jūsu CSS atsevišķā failā gadījumā Jums ir nepieciešams, lai mainītu to, tāpat mēs iesakām ka jūs rakstāt savu JavaScript atsevišķos failos un izmantot skriptu tags avots piedēvēt tie JavaScript savā html, jūsu mājas lapā. Tātad JavaScript mainīgie, mēs sākt runāt par sintaksi šeit. Un mēs iet cauri šāda veida ātri, jo mēs esam darījuši PHP, tāpēc tas viss ir diezgan pazīstams. Tātad mainīgie JavaScript ir ļoti līdzīgs PHP mainīgie. Nav veids apzīmētājs, un kad jūs iepazīstināt mainīgo, Jūs prefiksu ar VAR atslēgvārdu. PHP mēs varētu darīt kaut ko piemēram, tas, dolāra zīme x. Tas, kā mēs norādīts mainīgs, bet ne, mēs nemin tipu mainīgā vispār. Mēs teiktu kaut ko līdzīgu Dolāra zīme x vienāds 44 PHP. Ja mēs darām pats JavaScript, mēs teiktu VAR x ir vienāds ar 44. Tātad VAR ir sava veida mūsu veids ieviest mainīgo. Tas ir varbūt nedaudz vairāk intuitīvu nekā tikai dolāra zīmi mainīgo. Atkal, jo tur nav datu tipi, mēs varētu to izdarīt ar jebkāda datu tipu, stīgas, kaut kas cits viss būtu var. Conditionals, visi mūsu vecie draugi no C un PHP vēl ir pieejami, tāpēc mums ir, ja, cits, ja cits, slēdzis un jautājums zīme kolu. Switch paliekot tik elastīga kā to bija PHP, bet visi no tiem jūs esat iepazinušies ar ko tagad. Un līdzīgi ar cilpas ir vecās favorites par brīdi, darīt, kamēr, un joprojām ir pieejams pie mums. Tāpēc jau mēs zinām daudz no Pamata JavaScript veida pamatiem tikai tāpēc, ka viņš diezgan daudz Zināšanu tagad par C un PHP. Kas par funkcijām JavaScript? Nu, līdzīgi PHP katru funkcija ir iepazīstināja ar funkciju atslēgvārdu. Jūs sakāt, funkciju, un tad jūs sāk definētu savu funkciju. Kas ir nedaudz atšķirīgs par JavaScript, tomēr ir spēja būt ko sauc anonīms funkcija. Tātad jūs varat definēt funkcijas ka nav vārdu. Tas ir kaut kas, mēs tiešām neesmu redzējis. Mēs tiešām izmantot jēdzienu no anonīma funkcijas nedaudz vēlāk šajā video, jo tas būs padarīt mazliet lielāka jēga kontekstā kad mēs redzam to konkrētajā situācijā ka es esmu izstrādāts šeit. Bet pieņemsim tikai to apskatīt par kādu vienkāršu JavaScript funkcija varētu izskatīties. Tāpēc es esmu gājusi uz priekšu un atvēra manu CS50 IDE un es esmu jau palaist Apache sākt savu servera darbību. Un man ir šo failu atvērt sauc home.html. Un es tuvinātu mazliet šeit. Un būtībā, jūs varat redzēt Home.html ir tikai ķekars pogām. Un es esmu apgalvojot augšpusē šeit ka šis ir JavaScript sadaļa materiāli. Tātad tur ir ķekars pogas šeit, bet ko šīs pogas faktiski darīt? Nu, mēs dodies uz manu IED un man ir home.html atvērt šeit. Pašā sākumā, lūk, kur es esmu, kas savieno visu manu JavaScript avota failus. Tiesības? Tāpēc man ir anonymous.js, clock.js, Es esmu, izmantojot avota atribūtu no skriptu tag saistīt failā. Tāpēc es neesmu uzrakstījis kāds JavaScript tieši šo failu, bet es esmu velk visu JavaScript Esmu rakstisku atsevišķi. Un, ja mēs ritiniet uz leju šeit, tas būtu visi izskatās nedaudz pazīstami ar mazliet jaunu sintaksi. Mums šeit header tag funkcijas un pēc tam pogu. Man ir ievadi, kas ir poga tips, un acīmredzot, kad es noklikšķiniet uz tā, Es esmu gatavojas aicināt kādu darboties trauksmes datumu. Un tas ir tas, kā mēs varam veida jaukt mazliet JavaScript un HTML. Viņi faktiski spēlē diezgan labi kopā, un tā acīmredzot kad Es noklikšķiniet uz šīs pogas, es eju aicināt kādu funkciju trauksmes datumu. Un tāpat ir es noteikti uzvedību visiem pārējiem pogas, kas ir šajā home.html lapā, ko mēs glabāt atgriežoties līdz gaitā šo video laikā. Bet iesim atpakaļ uz augšu šeit un to apskatīt pie clock.js, kas ir JavaScript failu, kas man rakstīja, ka ir šī pirmā funkcija mēs spēsim to apskatīt. Kā jūs varat redzēt, es sāku manu JavaScript darbotos ar atslēgvārdu funkciju, un es esmu devis šo vienu nosaukums, tā sauc trauksmes datums. Iekšpusē tur, es acīmredzot izveidot Jaunais vietējās mainīgais sauc pašreizējo datumu. Un es esmu gatavojas piešķirt vienāds ar jaunu datumu. Un mēs varētu nokļūt daudz detalizēti par to, kāds datums ir, un tiešām JavaScript ir tik liels, ka mēs nevaram iespējams aptvert visu vienā video. Bet pietiek pateikt, tas notiek atgriezties pie manis datu postenis, iekapsulē pašreizējo datumu un laiku. Es esmu uzglabājot, ka mainīgo, ka es esmu acīmredzot gatavojas brīdināt pašreizējo datumu. Nu, ko dara brīdinājumu pašreizējais datums izskatīsies? Pieņemsim to apskatīt failu pati atpakaļ pār pārlūka logā. Tātad vēlreiz, tas ir poga, ka es ir saistīta ar, šo nosaukts funkciju. Un es noklikšķiniet uz to tur un meklēt to, ko tā darīja, tas brīdināti. Tas popped up šāda veida kastes stāsta man, ka pašreizējais laiks ir, acīmredzot tas ir 4. novembrim 10:43:43 no rīta. Un, ja es noklikšķiniet uz to vēlreiz, tagad tas dažas sekundes vēlāk, labi? Tā, ka viss šī funkcija dara. Kad es noklikšķiniet uz šīs pogas, to NOP up brīdinājuma ziņojumu uz mani. Tātad tur tiešām nav pārāk daudz funkciju kas ir atšķirīgs no PHP, tikai mazliet jaunā sintakse kas nāk ar darbu ar JavaScript. Masīvi JavaScript ir diezgan vienkārši. Atzīt masīvu, jūs izmantojat kvadrātiekavās sintakse ka mēs esam iepazinušies ar no PHP. Un līdzīgi PHP, mēs var arī sajaukt datu tipu. Tātad šis masīvs, gan Šo bloki būtu būt pilnīgi likumīga JavaScript. Viens, kas ir visus veselos skaitļus, un viens, kas tiek sajaukti dažādi datu veidi. Kas ir kaut kas ļoti atšķirīgs JavaScript, lai gan? Tas ir jēdziens objektu. Tātad varbūt jūs esat dzirdējuši par objektorientētā programmēšana. Mums nav darīt daudz to CS50, bet mēs darīsim mazliet no tā šeit kontekstā JavaScript. Tagad JavaScript ir spēja uzvesties kā objektorientētā programmēšana valoda, bet tas nav pats par sevi tikai objektorientētā programmēšanas valoda. Un tas atkal nāk atpakaļ uz to, kāpēc es teicu, tas var būt ļoti grūti, lai uzzinātu JavaScript kā savu pirmo programmēšana valoda, jo tas nav īsti piemērots konkrētu paradigmu. C, no otras puses, ir funkcionālā programmēšanas valoda. Ja mēs gribam, funkcijas ir kārtot liels boss cilvēks, vai ne? Viņi diktēt, ko notiek viss pārējais. Mēs vēlamies, lai mainītu mainīgos, mēs saucam funkcijas. Mēs darām lietas funkcijām. Objekti vietā, izturēties objektorientētā valoda, objekti veida kļūt zvaigzne un funkcijas kļūt veida sekundārs. Bet to, kas ir objekts, ko ir šis jēdziens objektu? Nu, ja tas palīdz, domāju, par to pirmajā veida no kā C struktūru vai struct ka mēs esam iemācījušies par agrāk. In C, struktūra satur vairāki no laukiem, un varbūt mēs tagad varētu sākt aicinu šos laukus īpašības. Bet īpašības nekad īsti stāvēt par to pašu, vai ne? Ja es definētu struktūru automašīnai kā šis ar šādiem diviem lauki vai īpašības, viens AN skaitlim par gada auto un vēl 10 raksturs string modelim automašīnas, Es varu teikt, kaut kas līdzīgs šim, Es varu atzīt jaunu mainīgo tipa struct automašīnas Herbiju. Un tad es varu pateikt kaut ko tāpat herbie.year vienāds 1963, un herbie.model vienāds Beetle. Tas ir labi. Es esmu, izmantojot laukus konteksts struktūras, bet es varētu nekad tikko saka kaut kas līdzīgs šim. Tiesības? Es nevaru izmantot lauka nosaukums neatkarīgs no struktūras. Tas ir sava veida fundamentālu lieta. Tātad lauki ir būtiska C struktūrām ir ļoti līdzīgi īpašības ir būtiska JavaScript objektiem. Bet kas padara tos Īpaši interesanti ir tas, ka objekti var būt arī kāda sauc metodes, kas ir patiešām tikai iedomātā vārds funkcijām, ir raksturīgas objektā, kā arī. Tātad, tas ir funkcija, kas var būt tikai aicināja kontekstā objektu. Tikai objekts, kas ir definēts Šī funkcija iekšpusē ITS, ja jūs domājat par struct, funkcija definē iekšpusē tiem definējot cirtaini bikšturi uzbūves. Tātad, tas tikai nozīmē kaut ko uz struktūru. Un tas ir sava veida, ko mēs darām šeit ar objektiem un metodēm. Tas ir būtībā tāpat mēs esam definēt funkciju, ir jēga tikai tad uz īpaši objekts, un tāpēc mēs piezvanīt ka ​​paņēmienā objekta. Un mēs nekad nevar zvanīt, ka funkcija neatkarīgs no objekta, tāpat kā mēs nevaram teikt, gadu vai modelis neatkarīgi no struct C Tātad funkcionālā programmēšana paradigmas izskatīties kaut kas līdzīgs šim. Funkcija un tad, kad jūs iet objektā kā parametru. In objektorientētā programmēšana valodas, šāda veida izpaužas Pagriezts, un mēs varētu domāt par tā kā šis, object.function. Tātad tā veida, ka dot operators vēlreiz norādot ka tas ir daži no īpašuma veida vai atribūts pašu objektu. Bet tas ir tas, ko objekts programmēšanas valoda varētu darīt, lai funkciju aicināt metodi, atkal, kas ir tikai īpašs vārds funkciju kas ir raksturīga objektu. Tas ir tas, ka sintakse varētu izskatīties. Un tā mēs sāksim redzēt dažus no šī kontekstā JavaScript. Jūs varat arī domāt par objektu kārtot līdzīgu asociatīvā masīva, kas mēs esam iepazinušies ar no PHP. Atceros asociatīvā masīva ļauj mums ir atslēgas vērtību pārus, nevis , kam indeksu 0, viens, divi, trīs, un tā tālāk, piemēram, mēs ko izmanto, lai no C masīvi. Asociatīvas bloki var karti vārdi, piemēram, PHP video, mēs runājām par virskārtas par picas. Un tāpēc mums bija masīvs sauc par picas, un mēs bija siers bija galvenais un $ 8,99 bija vērtību, un tad peperoni bija galvenais, $ 9,99 ir vērtība, un tā tālāk. Un tā mēs varam arī domāt par iebilst veida līdzīgs asociatīvās masīvs. Un tā tas sintakse šeit radītu jaunu objektu sauc Herbie ar divām īpašības iekšpusē no tā. Gads, kas tiek piešķirts vērtību 1963, un modelis, kas tiek piešķirts string Beetle. Un paziņojums, ka es esmu, izmantojot vienu pēdiņām JavaScript. Jūs varat izmantot vienu vai dubultās pēdiņas ja jūs runājat par stīgām. Tas ir tikai konvencionāli lieta, ka lielākā daļa reizes kad jūs esat rakstiski JavaScript, jūs vienkārši izmantot vienu pēdiņām. Bet es varētu izmantot dubultās pēdiņas šeit, un tas būtu pilnīgi naudas sodu, kā arī. Tik atceries, kā in PHP mums bija šo jēdzienu kādas katram cilpa, kas ļautu mums atkārtot pa visu galveno vērtību pārus asociatīvā masīvs, jo mēs nebija šī spēja atkārtot ar 0, viens, divi, trīs, četri, un tā tālāk? JavaScript ir kaut kas ļoti līdzīgs, bet tas nav sauc par katru cilpu, tā sauc par cilpām. Tātad, ja es teicu, man patīk Tas, VAR atslēgu objektā, tas ir sava veida līdzīgs sakot katram kaut kā kaut ko. Bet viss, ko es daru šeit atkārtojot cauri visām atslēgām mana objekta. Un iekšpusē cirtaini breketes tur, es izmantot objekta kvadrātiekavas taustiņu, lai atsauktos ar vērtību minētajā atslēgas atrašanās vietu. Alternatīvi, tur ir pat cita pieeja. Ja es tikko tikai rūp vērtībām, es varu teikt par atslēgu uz objektu, un tikai izmantot taustiņu iekšpusē. Tātad VAR atslēgu objektu, man ir izmantot objektu kvadrātiekavas Galvenais iekšpusē cilpa. Par VAR atslēgu objektu, es varu tikai izmantot taustiņu iekšpusē cilpas, jo es esmu tikai speciāli runājam par vērtībām, kas tur. Tātad pieņemsim, varbūt paiet apskatīt starpību tikai, lai ātri parādītu jums starpība starp četriem un lai kopā ar ļoti specifisku masīvs, kas mums ir šeit, nedēļa masīvs. Tāpēc man ir, lai atrastu jaunu masīvs ka es piepildīta ar septiņām stīgām, Pirmdiena, Otrdiena, Trešdiena, Ceturtdienās, piektdienās, sestdienās, svētdienās. Un es gribu tagad atkārtot caur šo masīvu, izdrukāšana noteiktu informāciju. Ja es izmantot, lai cilpa izdrukāt informāciju, Ko jūs domājat, ka es esmu gatavojas saņemt? Nu, pieņemsim to apskatīt. Un pirms mēs lēkt pāri manam pārlūka logā, tikai zinu, ka console.log ir sava veida vienu veids, kā to drukas F JavaScript. Bet to, kas ir konsole? Nu, tas ir tas, ko mēs ejam lai iet to apskatīt tieši tagad. Labi, tāpēc mēs esam atpakaļ šeit manā pārlūka logā, un es esmu gatavojas atvērt manu izstrādātāju rīki. Atkal, es esmu tikai hitting F12 atvērt izstrādātāju rīkus. Un paziņojums, ka šeit pie top Esmu izvēlējies konsoli. Tātad šis ir jēdziens attīstītāju konsole, un tas ļaus mums izdrukāt informāciju out, kārtot līdzīgu termināla, bet kā jūs redzēsiet mazliet vēlāk, mēs varam arī informāciju ievadīt sadarboties ar mūsu mājas lapā. Es esmu gatavojas, lai tuvinātu mazliet šeit, un es esmu gonna tagad noklikšķiniet uz par pārbaudē. Un četras test-- es neesmu gonna parādīs kodu par to tieši tagad, bet jūs saņemsiet, ja jūs lejupielādēt avota kodu, kas ir saistīta ar šo video-- ir tikai, ka par cilpa ka mēs redzējām tikai Otrais pirms uz slaida. Tāpēc es esmu gonna klikšķis, ka pogu, un vairāk nekā šeit, Lūk, ko ir izdrukāti In konsole, 0, viens, divi, trīs, četri, pieci, seši. Man nav izdrukāt informāciju iekšā šiem masīvu vietās, jo es izmanto, lai cilpa. Un ķermeņa cilpa iekšā, es vienkārši izdrukāt atslēga neiebilst atslēgu. Bet, ja es tagad skaidrs manu konsoli, un es pāriet uz uz testa, un četri no testa Es saku es izmantot no cilpas vietā un izdrukāt atslēgu, ja es noklikšķiniet, ka tagad es saņemu faktiskie elementi iekšpusē manu objekta vai mans masīvs šajā gadījumā. Mana masīvs nedēļas dienām. Es izdrukāt Pirmdiena, Otrdiena, Trešdiena. Tā, ka ir atšķirība starp A cilpa, kas izdrukā tikai atslēgas, ja jūs vienkārši izmantot taustiņu iekšpusē no ķermeņa no cilpas, un lai no cilpas, kas drukā out vērtībām, ja jūs izmantojat tikai atslēga ķermeņa cilpas iekšpusē. Labi, kā mēs tagad sākam saķēdēt stīgas un varbūt jaukt daži mainīgie ar interpolācijas kā mēs varējām darīt PHP? Nu, mēs esam diezgan pazīstams ar šo no PHP. Tas ir veids, kā mēs varētu to darīt, izmantojot dot operatoram saķēdēt stīgas. JavaScript, lai gan, mēs faktiski izmantot kaut ko sauc plus operators, kas ir varbūt pat mazliet vairāk intuitīvs, vai ne? Mēs pievienojot ķekars Stīgu kopā. Tātad pieņemsim doties atpakaļ pāri un redzēt, ko tas drukās ja mēs cenšamies, lai izdrukātu visu informāciju, kas nedēļu masīvs. Labi, tāpēc saskaņā ar šeit saskaņā stīgu konkatenācija, Man ir divas iespējas, stīgu ēka V1 un tad string ēka V2. Un mēs redzēsim, kāpēc mēs vajag V2 sekundē. Bet es esmu gonna klikšķiniet uz string ēka V1, kas ir kods mēs bijām tikai ņemot apskatīt, console.log ar visiem plusiem. Let 's redzēt, ja šī izdrukas , ko mēs sagaidām. Pirmdiena ir diena numurs 01 nedēļas, Otrdiena ir diena numurs 11 nedēļas. Nu, ko es centos darīt tur bija nokļūt tas izdrukāt pirmdiena ir diena numurs viens, otrdiena ir diena numurs divi. Bet, šķiet, piemēram, es esmu vienmēr izdrukāšana vienu. Nu, kāpēc tā? Nu, izrādās, veikt citu izskatu Šī maz fragmentu kodu šeit. Ievērojiet, ka mēs esam, izmantojot plus operators divos dažādos kontekstos. Un tā lūk, kur varbūt lietas ka mēs esam veida teicis, Ak, tas ir tik liels. Mēs nenodarbojamies ar datu tipiem vairs. Bet šeit ir, ja fakts ka mēs zaudējam datu tipu patiesībā var būt nedaudz problēmu mums. Tagad, plus operators tiek izmantots, lai saķēdēt stīgas un pievienotu numurus kopā, JavaScript ir padarīt savu labāko minējumu par to, ko es gribu to darīt man. Un šajā gadījumā, tas likās nepareizi. Tas tikai saliktās diena, kas būtu 0, viens, divi, trīs, četriem, pieciem, sešiem vai, un tad tas tikai saliktās ka tad saliktās vienu. Tas nav reāli pievienot tos kopā. Un tā šīs valodas, PHP un JavaScript, ka tēzes prom šis jēdziens veidu, Jums nav jātiek galā ar to vairs. Viņiem joprojām ir veidi ar kapuci. Un mēs varam, situācijās piemēram, tas, sviras šo faktu pasakot kaut ko piemēram, varbūt tas, kas stāsta JavaScript, ar veids, pret to kā skaitlim, neuzskatiet to kā auklas, pat lai gan mēs esam sajaucot kopā stīgas un veseli skaitļi šeit. Tā ir tikai viena no tām lietām ka tas šķiet tik liels kontekstā ka mums nav nodarbojas ar veidiem vairs, bet dažreiz jūs uzskriet situāciju tieši tāpat kā tas, ja fakts, ka jums nav kontroles pār veidiem var priekšlaicīga par jums ja jūs neesat rūpīgi. Un tāpēc, ja mēs pop atpakaļ pār IDE, es esmu iet, lai noskaidrotu savu konsole atkal, un es esmu gatavojas noklikšķiniet string ēka versija divi, kas ir, ja es izmantot šo parsēt int funkcija. Tagad tas ir izdrukāšana informācija, ka es esmu gaidījis. Pirmdiena diena numur viens, otrdiena ir diena numurs divi, un tā tālāk. Tātad parunāsim par funkcijām vēlreiz. Es apsolīju, mēs varētu runāt par anonīms funkcijas, un tagad konteksts, kas beidzot ir klāt. Tātad, pirms mēs to darām, parunāsim atkal par blokiem, lai tikai sekundi. Tātad masīvi ir īpašs gadījums no objekta. Patiesībā, viss JavaScript ir faktiski objekts. Tātad funkcijas ir īpašs gadījums objektu, veseli skaitļi ir īpaša gadījums no objekta, bet masīvi īpaši ir vairākas metodes. Atcerieties, jo viņi ir objekti, tie var būt īpašības un metodes. Tie ir vairākas metodes, kas var attiecināt uz šiem objektiem. Tur ir metode, ko sauc lielums, array.size, kas atgriezīsies jums, kā jūs varētu gaidīt skaits elementu jūsu masīvs. array.pop, kārtot līdzīgu Mūsu jēdziens popping off no skursteņiem, ja jūs atceraties no mūsu Stacks video, noņem pēdējo elementu no masīva. array.push pievienots jauns elements līdz beigām masīva. array.shift ir sava veida tāpat DQ, tas savijums out masīva pirmais elements. Bet tur ir arī vēl viena speciālā metode masīva sauc karti. Un tas ir sava veida interesants jēdziens. Tātad, kāda ir ideja par karti? Jūs faktiski redzēt šo vairākās citās valodās, un mēs nerunājam par kārtot kartogrāfi karti šeit, mēs runājam par kartēšanas funkciju. Šajā kontekstā mēs esam runājam šeit, karte ir īpaša operācija mēs var veikt uz masīvu piemērot īpašu funkciju katram šī masīva elementa. un tāpēc mēs teiktu šajā gadījumā, varbūt array.map, un iekšpusē tā, mēs iet uz kartes ir funkcija, kas mēs gribam jāpiemēro katru elementu. Tātad, tas ir sava veida analogs, lai, izmantojot cilpa atkārtot pār katru elementu un piemērot īpašu darboties katram elementam, tikko JavaScript ir tas būvēts jēdziens par kartēšanu, ko var piemērot. Un tas ir liels konteksts runāt par anonīmu funkciju. Tātad pieņemsim, ka mums ir šis masīvs integers. To sauc nums, un tas ieguva piecas lietas to, viens, divi, trīs, četri, pieci. Tagad es gribu, lai karti kādu funkcija uz šo masīvu. Es gribu būt funkcija jāpiemēro uz katru masīva elementu. Nu, pieņemsim, ka tas, ko es gribu jādara, ir tikai dubultā visi elementi. Ko es varētu darīt, ir tikai izmantot cilpu VAR es ir vienāds ar 0, es, ir mazāks nekā vai vienāds ar 4, es plus, kā arī, un tad dubultosies katru numuru. Bet es varu arī darīt kaut kas līdzīgs šim. Es varu teikt nums bija agrāk viens divi trīs Četri Pieci, Tagad, lai gan, es vēlētos, lai jūs piemērot kartēšanu uz šī masīva kur es gribētu jums divkāršot katru numuru. Un tas ir tieši kas notiek šeit. Bet paziņojums, ko es esmu iet tik arguments, lai karti. Šī ir anonīma funkcija. Un paziņojums man nav dota Šī funkcija nosaukums, Esmu tikai dota to parametru sarakstu. Un tā tas ir piemērs par anonīmu funkciju. Mēs parasti nekad saucam funkcija ārpus kontekstā kartē. Mēs esam definējot to kā parametrs kartēt, un tāpēc mums nav īsti jābūt tā nosaukumu, ja Vienīgais, kas rūpējas par to ir karte un tas ir definētas tiesības tur iekšā kartē. Un tā tas ir anonīms funkcija. Mēs neesam spējuši to darīt agrāk. Karte kādu funkciju, pieņem vienu parametru, num, un ko tas dara funkcija tiek atgriežas Num reizes 2. Un tā pēc tam kartēšana ir piemērota, tas ir tagad ko nums izskatās piemēram, divas, četru, sešu, astoņi, 10. Un mēs pop pār manu pārlūka logu un tikai ieskatieties šajā tiešām ātri, kā labi. Tāpēc man ir cits poga šeit manā mājas lapā sauc dubultā. Un, kad es noklikšķiniet dubultā, un tā stāsta man pirms tas bija viens, divi, trīs, četri, pieci pēc diviem, četriem, sešiem, astoņiem, 10. Un, ja es dodos atpakaļ un noklikšķiniet dubultā atkal, divi, četru, sešu, astoņi, 10. Un tad pēc, četri, astoņi, 12, 16, un pēc tam 20. Un ko es daru ar šo funkciju? Nu, ja mēs vienkārši pop pār IDE, un Es uzvilkt savu anonīmu funkciju, šeit par septiņiem līnijas caur 13, es esmu darot mazliet iedomātā darbu šeit, bet es esmu tikai izdrukāšana to, kas ir pašlaik masīvā. Pēc tam uz līnijas 16, 17, un 18, tur ir mana karte. Tas ir, ja es esmu piemērojot šo divkāršošanu funkcija, lai katru elementu. Un tad mazliet tālāk uz leju, Es esmu tikai darot to pašu Man bija darīt iepriekš, izņemot tagad es esmu izdrukāšana saturu masīva pēc tam. Bet viss, ko es esmu darījusi šeit ir tikai izmantot anonīmu funkciju kartēt pāri visam blokam. Tātad vēl viens liels jautājums runāt par JavaScript ir jēdziens par kādu notikumu. Pasākums ir kaut kas vienkārši notiek kad lietotājs mijiedarbojas ar savu web lapa, tāpēc varbūt viņi noklikšķina kaut, vai varbūt lapa ir pabeigta iekraušana, vai varbūt viņi pārcēlās savu peli pār kaut ko, vai tie esam drukāti kaut in ievades laukā. Visas šīs lietas ir notikumi kas notiek uz mūsu mājas lapā. Un JavaScript ir tāda spējas, lai atbalstītu kaut ko sauc par notikumu apdarinātājs, kas ir funkcija, kas reaģē uz html notikumu. Un kas ir atzvanīšanas funkcija? Nu, tas parasti ir tikai vēl viens nosaukt par anonīmu funkciju. Tā ir funkcija, kas reaģē uz notikumu. Un tas ir, ja mēs nonākam pie Ideja par saistošu noteiktas funkcijas konkrētai html atribūts. Lielākā daļa HTML elementi ir atbalsts atribūtu ka mēs nerunājam par HTML video par kaut ko līdzīgu par klikšķi vai karāšanās vai slodzes, visi no šiem notikumiem ka jūs varat uzrakstīt funkcijas kas nodarbojas ar šiem notikumiem kad šos notikumus rodas uz jūsu mājas lapā. Un tā varbūt jūsu html izskatās kaut kas līdzīgs šim. Un man ir divas pogas šeit, poga viens un divi poga, un šeit man ir šobrīd noteikts nekas, bet tas ir, ja atribūts klikšķis ir acīmredzot daļa no manas html tag. Tātad, acīmredzot, kad es definēt, kas ir notiek iekšpusē šo atribūtu, tas būs daži JavaScript funkcija, kas reaģē uz notikumu domājams noklikšķinot uz poga viens vai divi poga. Kas veida atdzist par šo ir mēs var uzrakstīt sugas notikumu apdarinātājs. Un šis notikums būs Handler izveidot notikumu objektu. Un notikums objekts pateiks mums kura no divām pogām tika uzklikšķināt. Tagad, kā tas darbojas? Nu, tas varētu izskatīties kaut kas līdzīgs šim. Tātad mēs vispirms jādefinē savas pogas lai būtu atbildi uz atzvanu funkcija, kas tiks izsaukta kad poga ir noklikšķinājuši, mēs saucam izbraukuma brīdinājuma vārdu. Un paziņojuma abos gadījumos mēs esam iet šajā pasākumā parametru. Tāpēc mēs saucam šo funkciju vai tad, kad šī funkcija izraisa pasākuma notiek, tas notiek, lai izveidotu šo notikumu objektu un nodot to kā parametrs, lai brīdinātu vārdu. Un tas notikums objekts ir gatavojas satur informāciju par kuru poga tika uzklikšķināt. Un kā tas izdarīt? Nu, tas varētu izskatīties kaut kas līdzīgs šim. Tāpēc tagad mans atsevišķi JavaScript failu, es varētu ir jāatrod šis funkcija trauksmes nosaukums, kurā atkal akceptē šo notikumu parametru. Un tad šeit ir vieta, kur es esmu atklāšanā kas poga tika iedarbināta, VAR sprūda vienāds notikumu dot avots elements. Kāds bija avots, kas radīja Šis notikums objekts, kas tika pieņemts? Vai tas bija poga viens vai tas bija poga divi? Un tad šeit visu es daru, ir izdrukāšana trigger.innerhtml. Nu, šajā gadījumā, jo šī konteksts, trigger.innerhtml ir tieši tas, kas ir rakstīts uz pogas. Tas tikai tā notiek, ja mēs pārietu atpakaļ uz otru, kas varētu būt to, kas ir starp šiem pogu tagiem. Tas tiks poga viens vai divi poga. Un pieņemsim to apskatīt cik šis notikums apdarinātājs būtu izskatītos, ja mums bija tā darbojas praksē. Tātad pirmkārt, jūs esat atvērušas events.js, kas ir JavaScript fails, kurā Man ir definētas šo funkciju. Un, kā jūs varat redzēt, tas ir diezgan daudz, ko tieši mēs tikko redzējām uz slaida otro atpakaļ. Un es iet pār uz mājas lapa, mēs esam izmantojuši. Un man ir šeit poga viens un divi poga. Un es noklikšķiniet uz pogas vienu. Jūs noklikšķinājis uz pogas vienu, ja jums var redzēt tepat brīdinājuma. LABI. Klikšķiniet uz pogas divas, jūs noklikšķina uz pogas divi. Tātad abas pogas ir lēmums pats funkciju zvanu, vai ne? Viņi abi bija brīdinājums vārds notikums, bet šis notikums objekts ka tiek izveidots, kad mēs noklikšķiniet uz tā stāsta mums, kas poga tika uzklikšķināt. Mums nebija rakstīt divas atsevišķas funkcijas vai nodarbojas ar kuru nodot jebkādu papildu informāciju. Mēs esam tikai paļaujoties uz ko JavaScript būs darīt mums, kas ir radīt ka veida notikuma objekta mūsu vārdā. Tur ir daudz vairāk, lai JavaScript nekā tas, ko mēs esam uz šo video, bet kam tie fundamentāls vajadzētu saņemt jūs diezgan ilgu veidi, mācību viss jums jāzina par šo interesanta valoda. Es esmu Doug Lloyd. Tas ir CS50.