[Daqq tal-mużika] Doug LLOYD: Allura minn issa aħna qed qodma pros fil-programmazzjoni web, right? U konna koperti diversi lingwi fl videos individwali. U issa ejja jagħmlu waħda aktar, JavaScript. L-ewwel l-aħbar tajba, JavaScript huwa programmazzjoni moderna lingwa ferm simili PHP li sintassi hija derivata mill C, hekk li l-post tajjeb fejn tibda. Huwa dwar qadima daqs PHP, kif ukoll, wara li kien madwar madwar 20 sena. Hija ġiet ivvintata madwar l-istess żmien bħal PHP. U JavaScript huwa attwalment pretty fundamentali għall-utent esperjenza tal-web. Fil-fatt, hemm tliet lingwi li I ngħid tip ta 'tpatti l utent esperjenza ta 'interazzjoni mal-websajt, html, css, u JavaScript. U hekk issa ejja nitkellmu ftit dwar JavaScript. L-aħbar ħażina, għalkemm, ma JavaScript huwa li din tistipula ħafna ta 'regoli għaliha nnifisha, u mbagħad pawżi lilhom. U JavaScript jista 'attwalment jiġi tip ta 'diffiċli li jitgħallmu, għaliex dan huwa b'differenza C u PHP, li huma strutturati ferm u għandhom regoli riġidi ħafna għal kemm affarijiet jistgħu jaħdmu. JavaScript għandha tip tal gotten tant flessibbli li forsi l-affarijiet ma jkunux sejrin lejn taħdem il-mod aħna tistenna li, u forsi aħna verament ma jistgħu jitgħallmu lingwa tagħna l-ewwel programmar bħala JavaScript. Allura forsi minħabba li ma stabbiliet għaliha nnifisha xi regoli, u ma verament jinfurzaw drawwiet kodifikazzjoni tajba. Imma issa konna żviluppati nisperaw xi drawwiet tajba kodifikazzjoni, u għalhekk nistgħu tibda foray fi JavaScript ftit. Biex tikteb JavaScript, simili għal ftuħ up fajl C bit-tikka estensjoni C jew fajl PHP b'estensjoni dot PHP, kollha għandna bżonn tagħmel hu li tiftaħ fajl mal-dot JS estensjoni fajl. Aħna ma bżonn li jkollhom xi speċjali delimiters simili għamilna fil-PHP. Dik it-tip ta 'angolu bracket kwistjoni mark PHP li aħna qed jintużaw biex minn dan, it-triq we tell browser tagħna li dak li għandna huwa JavaScript huwa billi jiġu inklużi fl-istess tag html, u aħna ser tara xi ftit dwar kif għandek tagħmel dan fi ftit mument. Il-ħaġa oħra li tagħmel JavaScript differenti, għalkemm, hi li din tmur naħa tal-klijent. Allura tfakkar ma PHP li aħna qatt jista 'verament tara il PHP li enfasizzat websajt. Jekk aħna qatt meqjusa l- sors paġna, nixtiequ biss tara l-html li kienet iġġenerat minn dik PHP. Iżda JavaScript runs naħa tal-klijent. Your JavaScript timxi fuq il-kompjuter tiegħek. U hu għalhekk li inti tista 'tagħmel affarijiet simili żid blockers. Dritt? Ad imblukkar ġeneralment isir billi qtil kollha tal-JavaScript li tkun taħdem fuq sit partikolari. U minħabba li jkollhom jimxu fuq naħa tal-klijent magna tiegħek, inti tista 'sempliċement twaqqaf il- JavaScript għat-tmexxija kompletament. Dan ifisser ukoll li meta tuża websajt li tinkludi JavaScript, inti għandek tibgħat is-sors JavaScript kodiċi kif parti mir-reazzjoni http tiegħek lill-klijent meta jitolbuha. U għalhekk inti ma tista tixtieq li tuża JavaScript biex tagħmel affarijiet verament sensittivi bħal informazzjoni li tgħaddi dwar passwords utenti back u raba, għaliex qed attwalment ser jirċievi l-source code, mhux biss l-html li huwa ġġenerat, hekk illi jkun il-każ ma jgħidu PHP. Allura kif nistgħu jinkludu JavaScript fil html tagħna biex tibda bil? Ukoll, simili għal CSS, fil-fatt, huwa tip ta 'kif nagħmlu dan hawnhekk. Bil CSS għandna tags stil. U ġewwa minn dawk tags stil, nistgħu jiddefinixxu folja stil CSS. Bl-istess mod ma JavaScript nistgħu tiftaħ tags iskrittura, tag ieħor html aħna ma jitkellmu dwar fil-video html tagħna, u jiktbu JavaScript fil bejn dawk tags iskrittura. Ukoll għalkemm, bħall CSS, aħna jista rabta fil barra fajls CSS u iġbed tagħhom fiċ-programm tagħna li mod. Bil CSS nistgħu wkoll, skuża me, ma JavaScript nistgħu wkoll tispeċifika s-sorsi attribut tal-lametta iskrittura ir-rabta JavaScript separatament, sabiex inti ma jkollhom jiktbu fil bejn tags iskrittura, aħna tista 'rabta huwa fl-użu li tag iskrittura ukoll. U hekk kif il-każ ma 'CSS fejn aħna rakkomandat li kien probabbilment fl-aħjar interess tiegħek li tikteb CSS tiegħek fil-fajl separat fil-każ għandek bżonn biex jibdlu, Bl-istess mod do nirrakkomandaw li tikteb tiegħek JavaScript f'fajls separati u l-użu s-sors tags iskrittura tattribwixxi lil tie tiegħek JavaScript fil html tiegħek, web page tiegħek. Varjabbli Allura JavaScript, aħna ser jibda jitkellem dwar il-sintassi hawn. U aħna ser jgħaddu dan it-tip ta 'malajr, għaliex aħna ghamilt dan fil-PHP, hekk dan kollu għandu jkun pretty familjari. Varjabbli fil JavaScript hekk huma simili ħafna għal PHP varjabbli. M'hemm l-ebda specifier tip, u meta inti jintroduċu varjabbli, inti prefiss ma 'l-keyword var. Fil PHP aħna se nagħmlu xi ħaġa bħal dan, is-sinjal dollaru x. Li kif aħna indikat varjabbli, iżda l-ebda, aħna ma jsemmux it-tip tal-varjabbli fil-livelli kollha. Aħna ngħid xi ħaġa bħal dollaru sinjal x ugwali 44 PHP. Jekk aħna kienu qed jagħmlu l- istess ħaġa fil JavaScript, aħna ngħid var x ugwali 44. Allura var huwa tip tal-mod tagħna li tkun introdotta varjabbli. Li forsi daqsxejn aktar intuwittivi minn sempliċiment dollaru varjabbli sinjal. Għal darb'oħra, peress li hemm l-ebda tipi ta 'data, stajna nagħmlu dan bi kwalunkwe tip ta 'data, kordi, kull ħaġa oħra kollha jkunu var. Conditionals, kollha ta 'tagħna ħbieb antiki mill C u PHP għadhom disponibbli, hekk aħna jekk, inkella jekk, inkella, swiċċ u mistoqsija kolon marka. Swiċċ jifdal flessibbli kemm it kien fil-PHP, iżda dawn kollha int familjari magħhom issa. U l-istess ma 'linji huma l-Favourites qodma ta 'waqt, do ftit, u għal għadhom disponibbli lilna. Allura diġà nafu ħafna ta 'l- JavaScript tip bażiku ta 'prinċipji fundamentali biss minħabba li jkollu pjuttost ftit ta 'għarfien issa dwar C u PHP. What about funzjonijiet JavaScript? Ukoll, simili għal PHP kull funzjoni hija introdott bil-keyword funzjoni. You say funzjoni, u allura inti jibdew jiddefinixxu funzjoni tiegħek. X'hemm differenti ftit dwar JavaScript, għalkemm hija l-abbiltà li jkollhom dak li sejjaħ funzjoni anonima. Allura inti tista 'tiddefinixxi funzjoni li ma għandhom isem. Din hija xi ħaġa li aħna verament ma bbenefikawx qabel. Aħna ser verament jużaw il-kunċett ta 'funzjoni anonima ftit aktar tard f'dan video, minħabba li ser jagħmlu ftit aktar sens f'kuntest meta naraw dan f'sitwazzjoni partikolari li stajt crafted hawn. Imma ejja ħu ħarsa lejn dak li JavaScript sempliċi funzjoni tista 'look like. Hekk stajt marret quddiem u fetaħ IDE CS50 tiegħi u stajt diġà amministraw Apache li tibda server running tiegħi. U jien dan il-fajl miftuħa imsejħa Home.html. U jien ser zoom ftit hawn. U bażikament, tista 'tara l- Home.html huwa biss mazz ta 'buttuni. U jien titlob fil-quċċata hawn li dan huwa t-taqsima JavaScript materjali. Allura hemm mazz ta 'buttuni hawn, imma dak li dawn il-buttuni fil-fatt jagħmlu? Well, aħna ser ras għal IED tiegħi, u jien Home.html tiftaħ hawnhekk. Fil-bidu nett, hawn fejn jien jgħaqqdu fil kollha ta 'fajls tiegħi sors JavaScript. Dritt? So I jkollhom anonymous.js, clock.js, Jien jużaw l-attribut sors tal-lametta iskrittura ir-rabta fajl. Kwalunkwe So I ma miktub JavaScript direttament fil dan il-fajl, imma stajt jinġibed fil kollha l- JavaScript Stajt bil-miktub separatament. U jekk aħna iscroll hawn, dan kollha għandhom ħarsa kemmxejn familjari bi ftit ta 'sintassi ġdida. Għandna hawnhekk tag header għall funzjonijiet u mbagħad buttuna. I jkollhom dħul li l-buttuna tip, u apparentement meta I ikklikkja, Jien ser sejħa xi funzjoni data twissija. U dan huwa kif nistgħu tip ta 'ħallat xi ftit ta 'JavaScript u html. Huma effettivament tilgħab pretty nicely flimkien, u għalhekk apparentement meta I ikklikkja fuq din il-buttuna, jien ser sejħa f'xi data twissija funzjoni. U l-istess jiena imgieba definit għall kollha tal-buttuni oħra li huma fuq dik il-paġna home.html, li aħna ser iżommu lura li matul il-kors ta 'dan il-video. Imma ejja mmorru lura up hawn u tagħti ħarsa fil clock.js, li hija l- JavaScript fajl li I kiteb li għandha dan l-ewwel funzjoni aħna qed tmur biex tagħti ħarsa lejn. Kif tistgħu taraw, nibda tiegħi JavaScript jiffunzjonaw bil-funzjoni keyword, u stajt mogħtija dan wieħed isem, huwa msejjaħ data allert. Ġewwa ta 'hemm, I apparentement joħolqu varjabbli lokali ġdida msejħa data attwali. U jien ser tassenja ugwali għal data ġdida. U nistgħu jiksbu fis-lott ta ' dettall dwar x'inhu data hija, u verament JavaScript huwa tant kbir li ma nistgħux possibilment ikopru kollox fil-video wieħed. Iżda huwa biżżejjed li jingħad, dan se li jirritornaw għall me oġġett ta 'dejta li tiġbor id-data u l-ħin kurrenti. Jien ħażna li fil-varjabbli li jien apparentement ser twissi data attwali. Ukoll, dak ma allert Ħarsa data attwali like? Ejja tagħti ħarsa lejn il-fajl innifsu lura fuq fil-tieqa browser. Għalhekk għal darb'oħra, dan huwa l-buttuna li I jkunu marbuta ma, din il-funzjoni jismu. U jien ikklikkja hemmhekk u tħares dak li għamlet, hija mgħarrfa. Hija feġġ dan it-tip tal-kaxxa javżak me li l-ħin attwali hija, apparentement huwa 4 Novembru fil 10:43:43 fil-għodu. U jekk jien ikklikkja darb'oħra, issa huwa ftit sekondi wara, id-dritt? Allura dak dan kollu funzjoni ma. Meta I ikklikkja din il-buttuna, huwa pops up messaġġ ta 'twissija lili. Allura hemm verament ma wisq biex funzjonijiet li l differenti minn PHP, biss ftit ta 'sintassi ġdida li jiġi ma taħdem ma JavaScript. Arrays fil JavaScript huma pjuttost sempliċi. Tiddikjara firxa, tuża l sintassi parentesi kwadri li aħna qed familjari mal mit PHP. U simili għal PHP, aħna wkoll jista 'jħallat tipi ta' data. Allura dan array, kemm ta 'dawn arrays kieku jkun perfettament leġittimu JavaScript. Wieħed li interi, u wieħed li hija mħallta up tipi differenti ta 'data. X'hemm xi ħaġa differenti ħafna fl JavaScript, għalkemm? Dik hija l-kunċett ta 'oġġett. Allura forsi inti ħadthom jinstemgħu ta ' joġġezzjonaw programmazzjoni orjentati. Aħna ma jagħmlu ħafna ta 'dan fil CS50, imma aħna se tagħmel ftit ta 'dan hawn fil-kuntest ta 'JavaScript. Issa JavaScript għandu l-abbiltà li jaġixxu bħala programmar oġġett orjentati lejn lingwa, iżda hi nnifisha ma tkunx esklussivament oġġett orjentati lingwa ta 'programmar. U dan jerġa jaqa lura għall għaliex I said, jistgħu jkunu ta 'sfida biex jitgħallmu JavaScript bħala l-ewwel programmazzjoni tiegħek lingwa, minħabba li ma verament tajbin paradigma partikolari. C min-naħa l-oħra hija lingwa ta 'programmar funzjonali. Jekk irridu li, funzjonijiet huma tip tal-bniedem boxxla kbar, id-dritt? Huma jiddettaw liema jiġri kull ħaġa oħra. Aħna tixtieq li tibdel il-varjabbli, nitolbu funzjonijiet. We do affarijiet għall-funzjonijiet. Oġġetti minflok, fi joġġezzjonaw lingwa orjentati lejn, oġġetti minnu tip ta 'ssir l-istilla u funzjonijiet jsiru tip ta 'sekondarja. Imma dak li huwa oġġett, liema huwa dan il-kunċett ta 'oġġett? Ukoll, jekk dan jgħin, think dwar dan fl-ewwel tip ta 'prodotti simili struttura C jew Istituzzjonjijiet li aħna stajt tgħallmu dwar qabel. Fil C, struttura fiha f'numru ta 'oqsma, u forsi aħna issa jistgħu jibdew sejħa dawn il-proprjetajiet oqsma. Iżda l-proprjetajiet qatt verament toqgħod fuq tagħhom stess, id-dritt? Jekk I jiddefinixxu struttura għal karozza bħal dan li ġej tnejn oqsma jew il-proprjetajiet, wieħed numru sħiħ għas-sena tal-karozza u karattru ieħor 10 string għall-mudell tal-karozza, Nista 'ngħid xi ħaġa bħal din, I tista 'tiddikjara varjabbli ġdida tat-tip Herbie karozza Istituzzjonjijiet. U allura nista 'ngħid xi ħaġa bħal herbie.year ugwali 1963, u herbie.model ugwali Beetle. Li OK. Jien jużaw l-oqsma fil- kuntest tal-istruttura, imma I jistgħu qatt biss ngħid xi ħaġa bħal din. Dritt? I ma tistax tuża l-isem qasam indipendenti mill-istruttura. Huwa tip ta 'ħaġa fundamentali. Allura oqsma jkunu fundamentali għall-istrutturi C huma simili ħafna għall-proprjetajiet jkunu fundamentali biex JavaScript oġġetti. Imma dak li jagħmel lilhom partikolarment interessanti huwa li l-oġġetti jista 'jkollhom ukoll dak huma msejħa metodi, li verament biss kelma fancy għall-funzjonijiet li huma inerenti għall-oġġett kif ukoll. Allura huwa funzjoni li tista 'tkun biss imsejjaħ fil-kuntest ta 'oġġett. Biss oġġett li jkun definit din il-funzjoni ġewwa tal tagħha, jekk taħseb dwar Struct, il-funzjoni hija definita ġewwa dawk li jiddefinixxu ċingi kaboċċi ta 'l-istruttura. Għalhekk ifisser biss xi ħaġa l-istruttura. U dan huwa tip ta 'dak li aħna qed tagħmel hawn ma 'oġġetti u l-metodi. Huwa bażikament simili aħna qed tiddefinixxi funzjoni li tagħmel sens biss fuq partikolari oġġett, u hekk aħna sejħa li metodu ta 'l-oġġett. U aħna qatt ma tista 'sejħa li funzjoni indipendenti mill-oġġett, bħad ma nistgħux ngħidu sena jew mudell indipendenti mill-Istituzzjonjijiet fil C. Programmazzjoni hekk funzjonali mudelli tfittex xi ħaġa bħal din. Funzjoni u mbagħad meta inti tgħaddi fl-oġġett bħala parametru. Fi programmazzjoni oġġett orjentati lejn lingwi, dan it-tip ta 'gets flipped, u aħna ser jaħseb dwar dan bħal dan, object.function. Għalhekk tip ta 'dak dot operatur ġdid li jimplika li huwa xi tip ta 'proprjetà jew attribut tal-oġġett innifsu. Imma dan huwa dak oġġett lingwa ta 'programmar orjentati tista 'tagħmel biex jagħmlu funzjoni sejħa fuq metodu, għal darb'oħra, li hija biss kelma speċjali għal funzjoni li huwa inerenti għal oġġett. Dan huwa dak li sintassi jista 'dehra. U hekk aħna ser tibda tara xi wħud mill dan fil-kuntest ta 'JavaScript. Tista 'ukoll jaħsbu dwar oġġett tip simili firxa assoċjattiva, li aħna qed familjari mal mit PHP. Ftakar firxa assoċjattiva tippermetti li jkollna pari b'valur ewlenin, minflok ta 'wara indiċi 0, wieħed, tnejn, tlieta, u l-bqija simili aħna qed jintużaw biex minn C arrays. Arrays assoċjazzjoni tista Mappa kliem, bħal fil-video PHP, konna nitkellmu dwar uċuħ ta 'pizez. U hekk kellna firxa imsejħa pizez, u aħna ġobon kellhom kien importanti u $ 8.99 kien l- valur, u mbagħad pepperoni kien ewlenin, 9.99 $ kien valur, u l-bqija. U hekk aħna jista 'jaħseb ukoll madwar joġġezzjonaw tip ta simili għal assoċjattiva firxa. U hekk dan sintassi hawn toħloq oġġett ġdid imsejħa Herbie b'żewġ proprjetajiet ġewwa ta 'dan. Sena, li huwa assenjat il-valur 1963, u l-mudell, li huwa assenjat il-sekwenza Beetle. U tinnota hawnhekk li jien jużaw kwotazzjonijiet uniku fil JavaScript. Tista 'tuża kwotazzjonijiet wieħed jew doppju meta inti qed jitkellem dwar kordi. Huwa biss b'mod konvenzjonali il-każ li ħinijiet l-aktar meta int bil-miktub JavaScript, inti biss tuża kwotazzjonijiet uniku. Imma I jistgħu jużaw kwotazzjonijiet doppja hawn, u li jkun perfettament multa kif ukoll. Mela ftakar kif fil PHP kellna dan il-kunċett ta 'kull linja li nkunu nistgħu li jtenni fuq kull tal-valur ċavetta pari ta 'assoċjattiva firxa, għaliex aħna ma kellhomx din il-ħila li jtenni permezz 0, wieħed, tnejn, tlieta, erba, u l-bqija? JavaScript għandu xi ħaġa simili ħafna, iżda mhux msejjaħ għal kull loop, huwa msejjaħ fl loops. Mela jekk jien qal lili bħal dan, għal ċavetta var fil-għan, dan huwa tip ta 'simili għal qal għal kull ħaġa bħala xi ħaġa. Imma kollha li qed nagħmel hawn hija mtennija kollha permezz ta 'l-ċwievet ta' oġġett tiegħi. U ġewwa tal-kaboċċi ċingi hemm, nixtieq jużaw oġġett parentesi kwadri ċavetta biex jirreferi għall-valur f'dak il-post ewlieni. Alternattivament, hemm anke ieħor approċċ. Jekk I biss biss jimpurtak mill- Valuri, nista 'ngħid għal ewlenija ta' oġġett, u biss użu ewlieni ġewwa. Allura għal ċavetta var fil-għan, għandi għall-użu parentesi kwadri oġġett ewlieni ġewwa l-linja. Għal ewlieni var ta oġġett, nista ' biss tuża ċavetta ġewwa l-loop, għaliex jien biss speċifikament jitkellem dwar il-valuri hemmhekk. Mela ejja forsi tieħu tħares lejn id-differenza biss biex turi li inti malajr id-differenza bejn erba fi u għal ta bi speċifiku ħafna array, li għandna hawnhekk, firxa ġimgħa. So I jkollhom isibu firxa ġdida I mimlija ma 'seba' kordi, It-Tnejn, it-Tlieta, l-Erbgħa, Il-Ħamis, il-Ġimgħa, is-Sibt, il-Ħadd. U nixtieq li issa jtenni permezz ta 'dan array, stampar ta 'ċerta informazzjoni. Jekk I jużaw fl loop biex jistampa l-informazzjoni, x'taħseb li jien ser tikseb? Well, ejja tagħti ħarsa. U qabel we tiżdied fuq tieqa browser tiegħi, biss jafu li console.log huwa tip ta 'waħda mod ta 'kif isir print F fl JavaScript. Imma x'inhi l-console? Ukoll, dan huwa dak li aħna qed tmur li jmorru tagħti ħarsa lejn id-dritt issa. OK, hekk aħna qed lura hawn tieqa browser tiegħi, u jien ser tiftaħ up għodod iżviluppatur tiegħi. Għal darb'oħra, jien biss laqtu F12 biex jiftħu għodod iżviluppatur. U tinnota li hawn fil- top Stajt console magħżula. Allura dan huwa l-kunċett ta 'żviluppatur console, u se jippermettilna naslu biex jistampa informazzjoni out, tip ta bħall-terminal, iżda kif tkun taf tara ftit aktar tard, nistgħu wkoll tip ta 'informazzjoni fil li jinteraġixxu ma 'web page tagħna. Jien ser zoom ftit hawn, u jien gonna issa ikklikkja fuq għal test. U erba 'fil test-- M'inix gonna juruk l-kodiċi għal dan id-dritt issa, imma int ser tingħata jekk inti tniżżel il-kodiċi tas-sors li huwa assoċjat ma 'dan video-- huwa biss li fl loop li rajna biss tieni ilu fuq il-pjastra. Hekk jien gonna ikklikkja li buttuna, u minn hawn, hawn hu dak li stampata fl- console, 0, wieħed, tnejn, tlieta, erba ', ħames, sitta. I ma jistampa l-informazzjoni ġewwa f'dawk il-postijiet array, minħabba I użati fid loop. U ġewwa l-korp tal-linja, I biss stampata ċavetta ma toġġezzjonax ċavetta. Imma jekk jien issa ċar tiegħi console, u I jaqilbu għal għal ta 'test, u erba' testijiet I say I użu għal loop tal minflok u jistampa ewlenin, jekk I ikklikkja li, issa jien jkollna l Elementi attwali ġewwa tal-oġġett tiegħi jew array tiegħi f'dan il-każ. Firxa tiegħi ta 'jiem fil-ġimgħa. I stampata Tnejn, IT-TLIETA, l-Erbgħa. Allura dak id-differenza bejn a fil loop, li tistampa biss il-keys jekk inti biss tuża ċavetta ġewwa tal-ġisem tal-linja, u għall ta loop, li prints il-valuri jekk inti tuża biss ewlieni ġewwa l-korp tal-linja. Dritt kollox, kif nistgħu issa tibda concatenate kordi u forsi ħallat xi varjabbli ma interpolazzjoni bħal konna kapaċi li jagħmlu fil PHP? Well, aħna qed pretty familjari ma 'dan mill-PHP. Dan huwa kif aħna se tagħmel dan billi tuża l- dot operatur concatenate kordi. Fil JavaScript, għalkemm, aħna attwalment jużaw xi ħaġa imsejjaħ l-operatur plus, li huwa forsi anki ftit aktar intuwittivi, id-dritt? Aħna qed żżid mazz ta 'spag flimkien. Mela ejja ras lura fuq u tara dak li dan se print jekk aħna qed jippruvaw jistampa l-informazzjoni kollha fil-firxa ġimgħa. Dritt kollox, dan taħt hawn taħt konkatenazzjoni sekwenza, Għandi żewġ għażliet, bini string V1 u mbagħad bini string V2. U aħna ser tara għaliex aħna bżonn V2 fit-tieni. Imma jien gonna ikklikkja fuq V1 bini string, li huwa l-kodiċi konna biss tieħu ħarsa lejn, l console.log kollha tal-pluses. Ejja naraw jekk dan prints barra dak li nistennew. It-tnejn huwa numru jum 01 tal-ġimgħa, Tlieta tkun numru jum 11 tal-ġimgħa. Well, dak I kien qed jipprova tagħmel kien hemm nikseb li jistampa it-tnejn huwa numru ġurnata waħda, it-Tlieta huwa numru jumejn. Iżda jidher li huwa simili jien dejjem stampar ta wieħed. Well, għaliex huwa li? Ukoll, jirriżulta, jieħdu ieħor ħarsa f'dan snippet ftit tal-kodiċi hawn. Avviż li aħna qed jużaw il-plus operatur f'żewġ kuntesti differenti. U hekk hawn fejn forsi l-affarijiet li konna tip ta 'kien qal, oh, huwa hekk kbir. Aħna ma jittrattawx ma 'tipi ta' dejta aktar. Iżda hawn fejn il-fatt li aħna jitilfu tipi ta 'data jista 'attwalment jiġi daqsxejn ta 'problema għalina. Issa li l-operatur plus huwa użat biex concatenate kordi u żid in-numri flimkien, JavaScript għandha jagħmlu l-aħjar raden tagħha dwar dak li nixtieq li tagħmel għalija. U f'dan il-każ, guessed ħażin. Hija ġurnata biss concatenated, li jkun 0, wieħed, tnejn, tlieta, erba ', ħames, sitt jew, u allura biss concatenated li u mbagħad concatenated wieħed. Hija ma attwalment żidhom flimkien. U hekk dawn il-lingwi, PHP u JavaScript, li astratti bogħod dan il-kunċett ta 'tipi, inti ma għandekx biex jittrattaw dan aktar. Huma xorta għandhom tipi taħt il-barnuża. U nistgħu, f'sitwazzjonijiet bħal dan, lieva dak il-fatt billi qal xi ħaġa bħal forsi dan, li huwa javżak JavaScript, mill- mod, jittratta dan bħala numru sħiħ, ma titratta dan bħala string, anki għalkemm aħna qed taħlit flimkien kordi u interi hawn. Huwa biss wieħed minn dawk l-affarijiet li jidher daqshekk kbira fil-kuntest li aħna ma jkollhomx biex jittrattaw tipi aktar, imma xi kultant inti ser run fis-sitwazzjoni eżattament bħal dan fejn il-fatt li inti ma għandekx kontroll fuq tipi jista 'backfire fuqek jekk int ma attenta. U hekk jekk aħna pop lura lill IDE, jien ser ċar l my console ġdid, u jien ser ikklikkja string bini verżjoni tnejn, li huwa fejn I użu dik il-funzjoni int parse. Issa huwa istampar out informazzjoni li jien jistennew. Numru jum wieħed nhar it-Tnejn, it-Tlieta huwa numru jumejn, u l-bqija. Mela ejja nitkellmu dwar funzjonijiet ġdid. I wiegħed aħna se nitkellmu dwar anonima funzjonijiet, u issa l-kuntest għal dak fl-aħħar wasal. Allura qabel nagħmlu hekk, ejja nitkellmu darb'oħra dwar arrays għal ftit tieni. Allura arrays huma speċjali każ ta 'oġġett. Fil-fatt, kollox fid JavaScript huwa attwalment oġġett. Allura funzjonijiet huma każ speċjali ta 'oġġett, interi huma speċjali każ ta 'oġġett, iżda arrays speċifikament għandhom numru ta 'metodi. Ftakar għaliex qed oġġetti, dawn jista 'jkollhom proprjetajiet u l-metodi. Huma għandhom numru ta 'metodi li jistgħu jiġu applikati għal dawk l-oġġetti. Hemm metodu msejjaħ daqs, array.size, li se terġa 'lura għal inti kif inti tista 'tistenna in-numru ta 'elementi fil-firxa tiegħek. array.pop, tip simili kunċett tagħna ta 'popping off ta 'ċumnija, jekk inti recall minn stacks video tagħna, tneħħi l-aħħar element mill-firxa. array.push żżid element ġdid l-aħħar ta 'firxa. array.shift huwa tip ta bħal DQ, it splices out l-ewwel element ta 'firxa. Iżda hemm ukoll ieħor speċjali metodu ta 'firxa imsejħa mappa. U dan huwa tip ta ' kunċett interessanti. Allura x'inhi l-idea ta 'mappa? Int ser ikollok attwalment tara dan f'diversi lingwi oħra, u aħna mhux qed jitkellem dwar tip ta 'cartographers mappa hawn, aħna qed jitkellem dwar funzjoni mapping. Fil-kuntest aħna jitkellem dwar hawn, mappa hija operazzjoni aħna speċjali jistgħu jwettqu fuq firxa li japplikaw funzjoni partikolari għal kull element ta 'dik array. u hekk aħna ngħid fil F'dan il-każ, forsi array.map, u ġewwa ta 'dan, aħna qed tgħaddi fi Mappa hija funzjoni li rridu li għandhom jiġu applikati għal kull element wieħed. Allura huwa tip ta 'analogi għall-użu a loop li jtenni fuq kull element u japplikaw partikolari jiffunzjonaw għal kull element, biss JavaScript tkun din mibnija kunċett ta 'mapping li jistgħu jiġu applikati. U dan huwa il-kuntest tajjeb ħafna biex jitkellmu dwar funzjoni anonima. Mela ejja ngħidu li għandna dan firxa ta 'numri interi. Huwa sejjaħ nums, u huwa ltqajna ħames affarijiet fih, wieħed, tnejn, tlieta, erba, ħamsa. Issa nixtieq li mappa xi funzjoni fuq din array. Irrid li jkollhom japplikaw funzjoni għal kull element ta 'l-array. Well, ejja ngħidu li dak li nixtieq tagħmel huwa biss tirdoppja l-elementi kollha. What I tista 'tagħmel huwa biss tuża loop għall var I ugwali 0, I huwa inqas minn jew ugwali għal 4, I plus, plus, u imbagħad doppja kull numru uniku. Imma I tista 'ukoll tagħmel xi ħaġa bħal din. Nista 'ngħid nums kienet preċedentement wieħed, tnejn, tlieta, erba ', ħames, issa, għalkemm, nixtieq li inti japplikaw immappjar fuq dan array fejn nixtieq li inti li tirdoppja kull numru. U dan huwa eżattament dak li qed jiġri hawn. Imma avviż dak li jien tgħaddi fil bħala l-argument biex iħażżu. Din hija funzjoni anonimu. U Avviż I ma jkunux taw din il-funzjoni ta 'isem, Stajt biss taha lista parametru. U għalhekk dan huwa eżempju ta 'funzjoni anonima. Aħna ġeneralment qatt kieku ssejjaħ dan funzjoni barra mill-kuntest ta 'mappa. Aħna qed tiddefinixxi bħala parametru biex jidentifikaw, u hekk aħna ma verament jeħtieġ li jkollu isem għaliha jekk il- unika ħaġa li jimpurtaha dwar huwa Mappa u huwa definit dritt hemm ġewwa tal-mappa. U għalhekk dan huwa funzjoni anonimu. Aħna ma kinux kapaċi biex jagħmlu dan qabel. Mappa xi funzjoni li taċċetta parametru wieħed, num, u dak li l-funzjoni ma huwa prospetti NUM ħinijiet 2. U hekk wara dan mapping tkun ġiet applikata, issa dan huwa dak nums jistenna simili, ġimagħtejn, erba, sitta, tmienja, 10. U aħna ser pop quddiem għall tiegħi tieqa browser u biss tagħti ħarsa lejn din verament malajr ukoll. So I jkollhom ieħor buttuna hawn fil-home page tiegħi imsejħa doppja. U meta I ikklikkja doppja, u jgħidlekx me qabel kien wieħed, tnejn, tlieta, erba, ħamsa wara żewġ, erba ', sitt, tmien, 10. U jekk immur lura u kklikkja double għal darb'oħra, ġimagħtejn, erba, sitta, tmienja, 10. U mbagħad wara, erba, tmienja, 12, 16, u mbagħad 20. U dak am I tagħmel f'dan funzjoni? Ukoll, jekk aħna biss pop quddiem għall IDE, u I pull up funzjoni anonima tiegħi, hawnhekk on line seba permezz 13, jien tagħmel ftit xogħol fancy hawn, imma jien biss istampar out x'hemm bħalissa fil-firxa. Imbagħad fuq il-linja 16, 17, u 18, hemm mappa tiegħi. Dan huwa fejn I m applikat dan irduppjar funzjoni li kull element wieħed. U mbagħad ftit aktar 'l isfel, Jien biss tagħmel l-istess ħaġa I kienet tagħmel qabel, ħlief issa jien stampar ta-kontenut tal-firxa wara. Imma kull I ghamilt hawnhekk huwa biss l-użu funzjoni anonimu Mappa madwar firxa sħiħa. Allura suġġett wieħed aktar kbar biex jitkellmu dwar fil JavaScript huwa l-kunċett ta 'avveniment. Avveniment hija xi ħaġa li jiġri biss meta utent jinteraġixxi ma 'web tiegħek paġna, hekk forsi ikklikkja xi ħaġa, jew forsi il-paġna huwa lest tagħbija, jew forsi li ħadthom mċaqalqa ġurdien tagħhom fuq xi ħaġa, jew li ħadthom ittajpjat xi ħaġa f'qasam input. Kollha ta 'dawn l-affarijiet huma avvenimenti li qed iseħħu fuq il-paġna web tagħna. U JavaScript għandha l- kapaċità li ssostni xi ħaġa imsejħa avveniment handler, li hija funzjoni callback li jirrispondi għal ġrajja html. U x'hemm funzjoni callback? Ukoll, huwa ġeneralment biss ieħor isem għal funzjoni anonima. Huwa funzjoni li jirrispondi għal ġrajja. U dan huwa fejn aħna waslet għall- idea ta 'ċerti funzjonijiet jorbtu għal attribut html partikolari. Elementi html Ħafna appoġġ għal attribut li aħna ma nitkellmu dwar fil-html video għal xi ħaġa bħal ikklikkja fuq jew fuq imbagħad jerġgħu jew fuq it-tagħbija, kollha ta 'dawn l-avvenimenti li inti tista 'mbagħad jiktbu funzjonijiet li jittrattaw ma 'dawk l-avvenimenti meta dawk l-avvenimenti jseħħu fil-paġna web tiegħek. U hekk forsi html tiegħek jistenna xi ħaġa bħal din. U Għandi żewġ buttuni hawn, wieħed buttuna u buttuna tnejn, u hawn I bħalissa għandhom xejn definiti, iżda dan huwa fejn l-attribut fuq ikklikkja hija apparentement parti mill html tag tiegħi. So apparentement meta I jiddefinixxu x'hemm jiġri ġewwa ta 'dak l-attribut, li għaddej biex jkun hemm xi JavaScript funzjoni li twieġeb għall-avveniment preżumibbilment tal tikklikkja fuq buttuna waħda jew buttuna tnejn. Liema tip ta 'kessaħ dwar dan hija aħna jista 'jikteb handler avveniment ġenerika. U dan l-avveniment Handler se toħloq avveniment oġġett. U l-avveniment oġġett se jgħidulna liema miż-żewġ buttuni kien għafast. Issa kif ma dak ix-xogħol? Ukoll, jista 'tfittex xi ħaġa bħal din. Allura aħna ewwel se jiddefinixxi buttuni tagħna li jkollhom rispons għall-callback funzjoni li se tissejjaħ meta l-buttuna hija għafast, aħna ser sejħa avveniment isem allert. U avviż fiż-żewġ każijiet aħna qed tgħaddi fil dan il-parametru avveniment. Allura nitolbu din il-funzjoni jew meta din il-funzjoni huwa triggered minn l-avveniment jiġri, li għaddej biex joħolqu dan l-avveniment oġġett u tgħaddiha bħala parametru biex twissi isem. U dak l-avveniment oġġett se jkun fihom informazzjoni dwar liema buttuna kienet għafast. U kif ma tagħmel dan? Ukoll, jista 'tfittex xi ħaġa bħal din. Allura issa fil separat tiegħi JavaScript fajl, I jista għandek issib dan funzjoni isem ta 'twissija, li għal darb'oħra jaċċetta dak il-parametru avveniment. U allura hawnhekk huwa fejn jien iskoperta li buttuna nbdiet, grillu var ugwali avveniment element sors dot. Liema kienet is-sors li ħolqot dan l-avveniment oġġett li kienet għaddiet fl? Ma kien buttuna waħda jew ma kien buttuna tnejn? U allura hawnhekk l nagħmel huwa stampar ta trigger.innerhtml. Ukoll, f'dan il-każ, f'dan il- kuntest, trigger.innerhtml huwa biss dak li huwa miktub fuq il-buttuna. Huwa biss hekk jiġri jekk aħna jaqbżu lura għat-tieni, li kieku jkun x'hemm bejn dawk tags buttuna. Dan se jkun wieħed buttuna jew buttuna tnejn. U ejja tagħti ħarsa lejn kif dan l-avveniment handler ikun tfittex jekk kellna dan jibda fil-prattika. Allura l-ewwel nett, inti stajt miftuħa events.js, li huwa l-fajl JavaScript fejn Għandi definiti din il-funzjoni. U kif tistgħu taraw, huwa pretty ħafna eżattament dak aħna biss raw fuq il-pjastra tieni ilu. U jien se jmorru fuq il- home page aħna kont qed tuża. U għandi hawn buttuna wieħed u buttuna tnejn. U jien ser ikklikkja fuq waħda buttuna. Inti għafast fuq buttuna waħda, jekk inti jista 'tara dritt hawn fit-twissija. KOLLOX SEW. Ikklikkja fuq buttuna tnejn, inti għafast fuq buttuna tnejn. Allura kemm buttuni għandhom l- istess sejħa funzjoni, id-dritt? Huma t-tnejn kienu isem allert avveniment, iżda dan l-avveniment oġġett li gets maħluqa meta aħna ikklikkja fuq huwa tgħidilna li button kienet għafast. Aħna ma jkollhom jiktbu żewġ separati funzjonijiet jew titratta ma jkollhom li jgħaddu kwalunkwe informazzjoni addizzjonali. Aħna biss jiddependu fuq dak JavaScript se do għalina, li huwa li jinħoloq li tip ta 'avveniment oġġett f'isimna. Hemm ħafna aktar biex JavaScript minn dak li konna koperti f'dan il-video, iżda li dawn fundamentali għandhom jingħataw inti pjuttost modi twil għall tagħlim kollox inti ser bżonn tkun taf dwar dan lingwa interessanti. Jien Doug Lloyd. Dan huwa CS50.