[Powered by Google Translate] [Semina] [JavaScript Mfumo: Kwa nini na jinsi] [Kevin Schmid] [Chuo Kikuu cha Harvard] [Hii ni CS50.] [CS50.TV] Hi, kila mtu. Karibu katika semina JavaScript Mfumo. Jina langu ni Kevin, na leo mimi naenda kuwa kuzungumza kuhusu mifumo JavaScript, na lengo la semina hii si kupata wewe, kusema, bwana mfumo fulani per se lakini kukupa utangulizi mpana kwa wanandoa wa mifumo ya na kuonyesha kwa nini sisi ingekuwa milele wanataka kutumia mfumo. Kabla ya mimi kufanya hivyo, mimi itabidi kutoa background kidogo katika JavaScript, na kisha tutaweza kuchukua kutoka huko. Sisi ni kwenda kuanza kwa kutekeleza orodha-do. Hapa ni kazi yetu orodha kwa leo. Ni aina ya funny. Tuna orodha ya kutekeleza kwa-nini katika JavaScript. Hii ni nini ni kwenda kuangalia kama, hivyo kwamba ni lengo letu kwanza. Sisi siyo kwenda kutumia mfumo wa kufanya hivyo. Tunakwenda kanuni JavaScript na kupata orodha kwa-nini kazi. Basi sisi ni kwenda kuboresha kubuni bila kutumia mfumo. Sisi ni kwenda kujadili mambo mbalimbali tunaweza kufanya na tu JavaScript peke yake kufanya yetu kwa-nini kuorodhesha zaidi kidogo pamoja iliyoundwa. Basi sisi ni kwenda kutupa katika jQuery baadhi, na kisha sisi ni kwenda kuangalia hiyo orodha ya, tu kutekelezwa katika mifumo tofauti, na tutaweza kujadili  faida na hasara njiani. Hebu kuanza kutekeleza kwamba orodha ya. Hebu sema sisi ni kupewa hii HTML. Mimi nina kwenda kufanya hii kidogo kidogo. Kama unaweza kuona, nina header kidogo kwamba anasema Todo na sanduku kidogo ambapo siwezi kuingia maelezo ya todo na kisha mwezi bidhaa kifungo, hivyo hebu kujaribu kuingia todo mpya kwenye orodha hii. Kutoa mifumo JavaScript semina, na mimi nina kuikumba bidhaa mpya. Mimi kupata hii tahadhari JavaScript kwamba anasema kutekeleza yangu. Sisi tumepewa ili kutekeleza. Hebu angalia kanuni kwa ajili ya hii, wote HTML na JavaScript. Hapa ni HTML yetu. Kama unaweza kuona hapa, hapa Todos yetu kidogo header. Hiyo ilikuwa ni kwamba jambo ujasiri saa ya juu, na kisha sisi kuwa na sanduku pembejeo na placeholder, na kisha kuna sifa fulani ya kifungo hii kwamba wito huu addTodo kazi. Je, mtu yeyote unataka nadhani nini kwamba juu ya click ni akionyesha? [Mwanafunzi Inaudible majibu] Nzuri, bonyeza ni aina ya kama tukio, kama kubonyeza mouse ni tukio, na nini sisi ni kufanya ni sisi ni tukio zililingana ya kubonyeza kifungo hii na nitafanya kwamba kazi. AddTodo ni hii handler tukio kwa kubonyeza kwamba kifungo. Kama unaweza kuona, wakati mimi bonyeza mpya ya bidhaa kifungo juu ya tukio click anapata fired, na kazi hii anapata kuitwa. Hebu tuangalie kazi. Kama unaweza kuona, hapa JavaScript yangu code hadi sasa. Nini nina saa ya juu ni ya kimataifa data muundo kwa orodha yangu kwa-nini. Inaonekana kama safu. Ni tu safu tupu. Na kisha mimi kuwa na kazi addTodo kuwa tuliona mapema, na mstari wa kanuni katika tu kuna tahadhari hii. Ni alerts kutekeleza yangu, na kisha nina 2 kazi katika mkono. Mimi kuwa na kuongeza todo na muundo wa kimataifa kwamba data, na kisha Mimi nataka kuteka nje ya orodha ya kwa-do. Hakuna pia dhana tu bado, lakini JavaScript wewe wanaweza wasijue, hivyo mimi nina kwenda polepole na tathmini ya misingi ya JavaScript katika njia hiyo. Hebu kutoa hii risasi. Hebu sema mtumiaji inaingia kitu katika sanduku hili. Mimi tu typed kitu hapa, maandishi. Jinsi gani mimi aina ya upatikanaji kwamba maandishi kupitia JavaScript? Kumbuka kwamba JavaScript, moja ya makala yake ya msingi ni kwamba inatupa hii upatikanaji wa programu ya DOM. Inaruhusu sisi kupata mambo na mali zao ya HTML hii halisi. njia ya sisi kufanya hivyo kwa wazi mifupa JavaScript ni tunaweza kweli kutumia kazi katika JavaScript kuitwa getElementByID. Nataka kuhifadhi maandishi kwamba ni typed huko katika variable fulani, hivyo mimi nina kwenda kusema kutofautiana mpya iitwayo new_todo, na mimi nina kwenda kupata kwamba kipengele. Hii ni kazi, getElementByID.. Na sasa nina kupata kipengele na ID, hivyo nahitaji ID ya sanduku kwamba maandishi, hivyo nimekuwa wakapewa new_todo_description ID. Hayo ni jinsi mimi naenda kupata kipengele. Hiyo ni hoja yangu kwa kazi hii, kwa kutaja ID kupata. Na hivyo kwamba ni kipengele katika HTML, na ina mali. Wameweza kuona haya. Wao ni sifa. sifa ya kipengele Nakala kwamba maduka ya pembejeo mtumiaji inaitwa thamani. Mimi kuokolewa thamani ya sanduku kwamba Nakala sasa katika hii variable kuitwa new_todo. Sasa mimi na upatikanaji wa programu ya kutofautiana hii, ambayo ni aina ya baridi kwa sababu sasa nini siwezi kufanya ni naweza kuongeza kwa orodha yangu kwa-nini. njia tunataka kufanya hii katika JavaScript-na si wasiwasi kama wewe usio wa kawaida na hii, lakini tu kwenda kwa njia hiyo ni todos.push kwa sababu hiyo jina ya muundo wangu kimataifa data hapa, na mimi nina kwenda kushinikiza new_todo. Hii ni kubwa kwa sababu sasa mimi na aliongeza kwa JavaScript yangu uwakilishi wa kwamba orodha ya. Lakini sasa jinsi gani mimi kupata nyuma ya HTML? Nina kutafuta njia ya kutatua ya kushinikiza nyuma. Kwa maneno mengine, mimi aina ya kuwa na kuteka hii. Nini tunakwenda kufanya ni tunakwenda kuteka orodha kwa-nini. Mimi haja ya update HTML nyingine kwenye ukurasa kwamba, na kama unaweza kuona, nimekuwa kushoto hii chombo kidogo hapa, hii msuluhishi wa ukurasa ambao ID ni todos, na mimi naenda kuweka orodha kwa-nini huko. Kwanza mimi nina kwenda kwa wazi ni nje kwa sababu, kusema, kulikuwa zamani orodha ya huko. Nina kupata kwamba kipengele na ID tena, na mimi nina kupata HTML ndani ya kipengele kwamba, na mimi nina kwenda kwa wazi kwamba. Kama sisi kushoto kanuni hii kama ni, tunatarajia kuona kitu tupu huko, na sasa mimi nataka kuanza kumtolea kwa-nini yangu mpya orodha. Mimi kimsingi kwenda kuifuta nje wangu orodha ya. Sasa ndani HTML ndani ya kwamba div todos ni wazi kabisa, na sasa mimi haja ya kuanza kuongeza orodha yangu. Jambo la kwanza mimi unataka kuongeza nyuma ni unordered orodha tag, ambayo kimsingi inaashiria kwamba huu ni mwanzo wa orodha ya unordered. Sasa kwa ajili ya kila kipengele katika safu yangu todos Nataka magazeti ya nje ndani ya HTML kwamba. Nataka append juu hadi chini ya orodha hii. Tu kama katika C, naweza kutumia kwa kitanzi, na mimi nina kwenda kuanza mwanzoni mwa orodha yangu katika kipengele 0, na mimi nina kwenda njia yote ya urefu wa orodha. Tunaweza kweli kupata urefu wa safu katika JavaScript kutumia mali urefu. Kimsingi mimi naenda kufanya kitu sawa sana ndani ya hapa magazeti nje kwamba kipengele. Siwezi tena kupata div todos, ndani ya HTML mali ya kwamba, na mimi nina kwenda kuongeza juu ya bidhaa hii mpya orodha, na kwamba kinaendelea kuwa amezungukwa na hii tag li, na mimi nina kwenda concatenate na operator +, na kwamba ni kipengele idh ya safu yangu todos, na kisha Mimi naenda kuifunga kwamba tag. Sasa kwa ajili ya kipengele kila tutaweza kuongeza orodha mpya kuingia. Na kisha wote sisi kwa kweli wanahitaji kufanya ni karibu mbali kwamba tag. Mimi tu haja ya karibu mbali kwamba unordered orodha tag. Je, kupata kujisikia kwa jinsi matendo? Hii kufungua orodha nzima. Hii inaongeza mambo ya mtu binafsi kutoka orodha todos kwa orodha, na kisha kwamba kufunga orodha nzima, na hii ni kazi yangu addTodo. Mimi kimsingi kuanza kwa kupata todo kutoka sanduku maandishi. Mimi kuongeza kwamba kwa safu todos, na kisha mimi re-atatoa orodha kwa-nini. Sasa naweza kuongeza vitu na orodha yangu. Hii ni aina ya kusisimua kwa sababu katika mistari michache tu ya maadili ya tumekuwa kimsingi alifanya orodha kwa-nini ambapo tunaweza kuongeza vitu. Kubwa. Hiyo ni aina ya kuanzishwa kwa msingi kwa JavaScript. Msiwe na wasiwasi sana kuhusu syntax kwa sasa, lakini kufikiri juu ya hili conceptually. Tulikuwa na baadhi ya HTML. Sisi alikuwa na sanduku Nakala juu ya ukurasa kwamba kimsingi kuruhusiwa watumiaji pembejeo bidhaa kwa-nini kuongeza. Na kisha sisi kutumika JavaScript kuchota kwamba todo kutoka sanduku kwamba maandishi. Sisi kuhifadhiwa kuwa, ndani ya safu JavaScript, ambayo kimsingi ni kama uwakilishi wetu programu ya kwamba orodha ya, na kisha sisi kuchapishwa nje. Hii ni todos.js. Hii ni aina ya baridi, lakini ni jinsi gani tunaweza kuchukua hii zaidi? Naam, kama unaweza kuona, hii si kama kamili orodha ya. Kwa mfano, siwezi alama yoyote ya vitu hivi kama hayajakamilika, kama kama nilitaka reprioritize vitu au kufuta vitu. Hii ni sawa, lakini tunaweza kuchukua hii zaidi. Mimi si kwenda kuzungumza sana kuhusu kuongeza makala za ziada, lakini tunaweza kuchukua zaidi. Hebu majadiliano kuhusu kuongeza moja zaidi kipengele hii orodha ya, ambayo ni kwenda kuwa na uwezo wa kuangalia mtu binafsi-kufanya bidhaa na kuwa ni kuwa shilingi nje, hivyo kimsingi akisema mimi tumefanya hii. Hebu tuangalie baadhi ya kanuni ambayo inaweza kukamilisha hilo. Taarifa ya nini nimekuwa kufanyika kwa juu ni nimekuwa aliongeza mpya safu ya kimataifa aitwaye kamili. Mimi kimsingi kwa kutumia hii ya kuhifadhi kama vitu kwenye orodha-do ni kamili au la. Hii ni njia moja ya kufanya hili. Kama mimi kuangalia utekelezaji wa hii, kuonyesha, kimsingi kama mimi kuingia todo na mimi vyombo vya habari hii kifungo kugeuza misalaba nje, hivyo kila bidhaa kwenye orodha hii ina aidha kamili au pungufu ya serikali, na mimi nina kutumia mwingine safu ya kuwakilisha kwamba. Kimsingi kwa ajili ya kila todo katika safu kwamba todos kuna kipengele katika safu kamili kwamba kimsingi inaonyesha kama kwamba ni kamili au la. Nimepata kufanya mabadiliko pretty ndogo na kanuni hii, hivyo hapa ni kazi yetu addTodo. Taarifa kwamba hapa mimi nina kusukuma ni kwenye safu, na basi mimi nina kusukuma 0 kwa safu kwamba kamili, kimsingi katika sambamba na msukumo huo mpya todo kusema Mimi kuongeza bidhaa hii, na ni pamoja na thamani hii, ambayo ina maana kwamba ni pungufu. Na basi mimi nina redrawing orodha-do. Sasa, taarifa nimekuwa aliongeza kazi huu drawTodoList. Hii inachukua mengi ya maadili tulikuwa kabla, kimsingi clears nje ya sanduku na kisha huchota mpya orodha ya. Lakini taarifa kwamba ndani ya hii kwa kitanzi sisi ni kufanya kidogo zaidi sasa. Sisi ni kimsingi kuangalia kama bidhaa sambamba na todo idh hapa ni kamili, na sisi ni tabia tofauti katika mazingira haya 2. Kama ni kamili, sisi ni kuongeza hii tag del, ambayo kimsingi ni njia unaweza kupata kwamba mgomo kupitia athari kuvuka nje ya orodha ya kwa-nini kama ni kamili, na kama siyo, sisi siyo ikiwa ni pamoja na yake. Na hivyo kuwa aina ya huduma inachukua kwamba, na kwamba ni moja ya njia ya kukamilisha hii. Na kisha taarifa wakati mtumiaji Clicks moja ya hizi sisi kugeuza hali ya kukamilisha hilo. Wakati Clicks mtumiaji, tutaweza kubadili kama ni imekamilika au la, na kisha tutaweza redraw yake. Aina hii ya kazi. Tuna kazi hizi kwamba kufanya kazi zao wenyewe, na hii ni sawa. Je, kuna kitu tunaweza kufanya vizuri zaidi kuhusu hili, ingawa? Tuna taarifa hizi 2 arrays kimataifa. Kama hii C alikuwa, na tulikuwa na arrays 2 kwamba aina ya kuwakilishwa data kwamba ilikuwa aina ya kuhusiana katika baadhi ya njia gani sisi kutumia katika C kwa kuchanganya na mashamba hayo 2 katika kitu ambacho encapsulates vipande wote wa habari? Mtu yeyote unataka kufanya maoni? [Mwanafunzi Inaudible majibu] Hasa, hivyo tunaweza kutumia aina fulani ya struct, na kama unadhani nyuma, kusema, pset 3, kumbuka tulikuwa na kamusi, na kisha tulikuwa kama neno alikuwa katika kamusi, na kwamba taarifa zote ilikuwa kuweka pamoja ndani ya baadhi ya muundo wa data. Jambo moja siwezi kufanya na kanuni hii ili kuepuka kuwa hizi 2 arrays tofauti kwa vipande sawa wa habari ni naweza kuchanganya yao katika kitu JavaScript. Hebu tuangalie kwamba. Taarifa mimi moja tu safu ya juu sasa na kile nimekuwa kufanyika ni-na hii ni syntax JavaScript kwa aina ya kujenga toleo halisi ya kitu, na taarifa kuna 2 mali, hivyo tuna todo, na ni agizo pamoja na kama ni kamili au pungufu. Hii ni sawa kanuni. Sisi ni kutumia vitu JavaScript. Aina hii ya mambo unaboreshwa. Kama ilivyo sasa, haya mashamba yote ya habari kuhusiana ni agizo pamoja. Wakati sisi kwenda magazeti ya nje, tunaweza kupata mashamba. Taarifa jinsi sisi ni kufanya todos [i] kamili. badala ya kuangalia kukamilisha safu tofauti, na taarifa wakati tunataka kupata kamba kwa-nini sisi ni kupata mali kwa-nini ya kwamba todo, hivyo aina hii ya mantiki kwa sababu kila kitu ina mali hizi halisi kuhusu hilo. Ina todo, na ina kama ni kamili au la. Si pia kuna mabadiliko mengi ya functionally, aliongeza tu baadhi ya zaidi ya kanuni. Haya ni maendeleo katika baadhi ya maeneo, haki? I mean, sisi zitawekwa nje kubuni kidogo. Sasa tuna vitu kimsingi kurejelea data hii. Je, kuna kitu zaidi tunaweza kufanya kutoka hapa katika suala la JavaScript? Kama taarifa kwamba hii kanuni ya haki hapa kwa ajili ya kupata HTML ndani wa div ni kidogo, mimi nadhani, kwa muda mrefu. Kuna document.getElementByID ("todos") innerHTML.. Jambo moja tunaweza kufanya ili kufanya kanuni hii kuangalia kidogo friendlier hivyo napenda kuwa na kushika scrolling kushoto na kulia, na kurudi, ni mimi naweza kutumia maktaba kama jQuery. Hebu angalia Semina ya 2, na hii ni kanuni moja, lakini ni kosa na jQuery. Unaweza kuwa pia ukoo na jQuery, lakini tu kujua kwamba jQuery ni aina ya maktaba kwa ajili ya JavaScript ambayo inafanya kuwa rahisi kufanya mambo kama mambo ya mtu binafsi ya upatikanaji wa DOM. Hapa badala ya kusema document.getElementByID ("todos"). InnerHTML Naweza kutumia njia safi zaidi katika jQuery, ambayo ni haki ya kutumia selectors. Kama unaweza kuona, kanuni hii alifanya kupata safi kidogo, sawa sana functionally, lakini hiyo ni wazo. Tumeona mambo kadhaa hivyo mbali, hivyo sisi ilianza na utekelezaji tu mbichi JavaScript. Sisi aliongeza makala mpya na ilionyesha jinsi gani tunaweza kuboresha ni pamoja na kile tu sisi katika JavaScript. Je, mtu yeyote kuona matatizo yoyote na muundo huu? Yaani, mimi nadhani-au si lazima matatizo lakini hebu kusema sisi si kufanya orodha ya mradi huo, na kesho tuliamua tulitaka kufanya orodha ya vyakula na vinywaji au mradi wa ununuzi orodha. mengi ya makala haya ni sawa sana. mambo mengi tunataka kupata nje ya JavaScript ni ya kawaida sana, na hii inasisitiza haja kwa baadhi ya aina ya njia ya kufanya hii rahisi kufanya. Mimi nilikuwa na kujenga wote wa upatikanaji huu HTML, upatikanaji hii yote DOM, kama mimi nina kwenda kuwakilisha orodha-do kwa mtindo huu. Na taarifa mimi nina wajibu kama developer JavaScript kwa ajili ya kuweka HTML na JavaScript kwamba mimi katika upatanishi. Kitu moja kwa moja alifanya kwamba JavaScript uwakilishi au orodha ya kwa-nini kupata kusukuma nje ya HTML. Kitu kutekelezwa kwamba isipokuwa kwa ajili yangu. Nilikuwa kuandika sare ya orodha ya kazi. Na ambayo yanaweza kuwa si-I mean, ni busara kufanya hivyo, lakini inaweza kuwa tedious wakati mwingine. Kama una mradi mkubwa, kwamba inaweza kuwa vigumu. Mifumo, moja ya madhumuni ya mifumo ya ni kurahisisha mchakato huo na aina ya sababu ya nje haya ya kawaida-mimi nadhani unaweza kusema-kubuni chati kwamba watu kwa ujumla kuwa baadhi ya aina ya njia ya anayewakilisha data, kama hiyo ni orodha marafiki, kama hiyo ni ramani habari au kitu au orodha ya kwa-nini. Baadhi ya watu wana ujumla njia ya anayewakilisha habari, na kwa ujumla haja ya kuweka kwamba aina ya habari katika upatanishi kati ya kile mtumiaji anaona katika baadhi ya aina ya maoni, akizungumza katika suala la kama mtawala mfano mtazamo kwamba aliona katika hotuba, na kisha mfano, ambayo katika kesi hii ni safu hii JavaScript. Mifumo kutupatia njia ya kutatua tatizo. Sasa hebu tuangalie utekelezaji wa orodha ya katika mfumo kuitwa angularjs. Hii ni yake. Taarifa hiyo inafaa kwenye slide. Sina na kitabu ya kushoto na kulia. Kwamba pengine si sababu kubwa ya kupendekeza kutumia mfumo, lakini angalia Mimi milele kupata mambo ya mtu binafsi HTML hapa? Mimi milele kwenda katika DOM? Je, unaweza kuona yoyote document.getElementByID au kitu kama hicho? Hapana, hiyo ni gone. Angular inatusaidia kuweka DOM na wetu JavaScript uwakilishi wa kitu katika aina ya upatanishi, hivyo kama si katika faili JS, kama hakuna njia ya programmatically kupata maudhui HTML kwamba wote kutoka JavaScript jinsi sisi kuweka hii katika upatanishi? Kama siyo katika faili JS., Ni got kuwa katika HTML, haki? Hii ni toleo jipya la faili HTML, na taarifa tumekuwa aliongeza mengi hapa. Taarifa kuna hizi sifa mpya kwamba kusema ng-click na ng-kurudia. Mbinu angular wa kutatua tatizo hili la matatizo katika kubuni ni kimsingi kufanya HTML sana na nguvu zaidi. Angular ni njia ya kuruhusu wewe kufanya HTML kiasi fulani zaidi expressive. Kwa mfano, naweza kusema kwamba mimi nina kwenda kufunga au kumfunga hii sanduku Nakala kwa kutofautiana ndani ya kanuni yangu Angular JavaScript. Hii ng-mfano haina tu. Kwamba kimsingi anasema kwamba bidhaa ndani ya sanduku hili maandishi, tu kwamba pamoja na kujiunga new_todo_description kutofautiana ndani ya kanuni ya JavaScript. Hiyo ni nguvu sana kwa sababu mimi si kuwa na kupanga kwenda DOM kupata kwamba habari. Sina ya kusema document.getElementByID. Sina kutumia jQueries kama upatikanaji DOM. Naweza kuihusisha na kutofautiana, na kisha wakati mimi kubadili kwamba kutofautiana ndani ya JavaScript ni agizo katika Sync na HTML, hivyo kwamba simplifies mchakato wa kuwa na kwenda na kurudi kati ya mbili. Je, hiyo mantiki? Na taarifa hakuna HTML upatikanaji kanuni. Tumekuwa tu alifanya HTML nguvu zaidi, na sasa, kwa mfano, tunaweza kufanya mambo kama hayo, kama wakati wewe bonyeza hii, piga simu hii kazi ndani ya wigo wa todos.js, na tunaweza kufanya hivyo kabla, lakini kuna mambo mengine, kama mfano ng-hii, na taarifa hii ng-kurudia. Unafikiri hii haina? Hapa ni orodha yetu unordered kutoka kabla. Tuna vitambulisho ul, lakini mimi milele utoaji kwamba orodha ndani ya maadili ya JavaScript? Mimi si milele waziwazi utoaji kwamba orodha. Jinsi gani kazi hii? Naam, Angular njia accomplishes hii ni hii inaitwa repeater. Kimsingi hii anasema kwamba nataka magazeti hii HTML kwa ajili ya kila ndani ya todo wa safu yangu todos. Ndani ya todos.jr kuna safu todos hapa hapa, na hii itakuwa kuwaambia go Angular kupitia safu hiyo, na kwa kila kipengele unaweza kuona Mimi nataka wewe magazeti hii HTML. Hii ni aina ya kushangaza kwa sababu siwezi tu kufanya hivyo bila kuwa na kuandika kwa kitanzi, ambayo kwa ajili ya orodha kwa-nini hiyo ilikuwa 30 tu mstari wa kanuni yanaweza kuwa si jambo la manufaa, lakini kama una mradi mkubwa, hii inaweza kupata rahisi sana. Hii ni moja ya ufumbuzi wa tatizo hili, na kufanya HTML nguvu zaidi, na kwamba inaruhusu yetu kwa kushika JavaScript na HTML katika upatanishi. Kuna wengine inawezekana njia ya kutatua tatizo hili, na si mfumo kila gani hii. Si mfumo kila kazi pamoja na mistari haya. Baadhi ya mifumo na njia tofauti, na unaweza kupata kwamba kufurahia coding katika mfumo mmoja juu ya nyingine. Hebu tuangalie moja zaidi. Hii ni orodha kwa-nini coded juu katika mfumo aitwaye Uti wa mgongo. Mimi nina kwenda kwa njia hii kwa haraka. Mimi itabidi kuanza na HTML kabla ya kwenda huko. Moja ya pili. Kuanzia na HTML, kama ilani, HTML yetu ni sawa kwa nini ilikuwa kabla, hivyo si sana mpya mbele kwamba. Lakini yetu JS faili ni tofauti kidogo. Uti wa mgongo wa aina hii ina wazo, au hujenga juu ya wazo kwamba mengi ya nini cha kufanya na, kusema, yetu JavaScript miradi ni kufikiri kuhusu mifano na makusanyo ya mifano ya haya. Hii inaweza kuwa, kwa mfano, picha na makusanyo ya picha, au wazo la rafiki na makusanyo ya marafiki. Na mara nyingi wakati sisi ni programu maombi JavaScript tutaweza aina ya kuwakilisha wazo la kuwa na mkusanyiko wa marafiki namna fulani katika JavaScript, na Uti wa mgongo inatupa safu hii juu ya arrays JavaScript iliyopo na vitu kufanya mambo ya nguvu zaidi na kwamba kwa urahisi zaidi. Hapa nimekuwa inavyoelezwa mfano-do, na huna kuwa na wasiwasi sana kuhusu syntax, lakini taarifa kwamba nini moja ya mali ya hili? Ina shamba default. Uti wa mgongo inaruhusu mimi kutaja tayari mbali bat yoyote mpya kwa-nini kwamba mimi kujenga ni kwenda na defaults hayo. Sasa naweza Customize hii, lakini kuwa na uwezo wa kutaja defaults ni nzuri, na ni aina ya rahisi kwa sababu hii si kitu hiyo ni kama asili katika JavaScript, na sasa sina kupanga kusema kwamba todos ni pungufu. Naweza kusema kwamba haki mbali bat todos ni kwenda kuwa alama kama pungufu. Taarifa basi ni nini hii? Sasa nina orodha kwa-nini, na kwamba ukusanyaji. Taarifa shamba kuhusishwa na kwamba anasema mfano todo. Hii ni njia yangu ya kuwaambia kwamba Uti wa mgongo Mimi naenda kuwa na mawazo kuhusu ukusanyaji wa todos haya ya mtu binafsi. Hii ni kimsingi muundo mfano wa kuigwa kwa mpango wangu. Hapa nina wazo hili la ukusanyaji, na kimsingi zilizomo katika ukusanyaji wa vitu kwamba wote ni kwenda kuwa haya todos, na kwamba ni ya asili kwa maana hii kwa sababu mimi kuwa todos, na mimi kuwa nao katika ukusanyaji. Hebu tuangalie kidogo zaidi ya hii. Hapa ni maoni Uti wa mgongo. Kitu kingine kwamba Uti wa mgongo anasema ni kwamba mengi ya mifano ya kwamba wewe ni kufikiri kuhusu makusanyo au hata ni kwenda haja ya kuwa na baadhi ya njia ya kuwa visas. Tunahitaji atatoa kwamba orodha ya, na bila kuwa nzuri kama sisi inaweza kutoa kwa kila mfano au kumshirikisha kila mfano mtazamo huu ambayo inaruhusu sisi Nadhani kuungana mbili pamoja? Ambapo kabla tulikuwa na kutumia kwa kitanzi kwamba ingekuwa kukimbia kwa njia ya kila todo katika orodha yetu na kisha magazeti ya nje hapa tunaweza kimsingi kuungana kwa mtindo huu. Hii ni rai kwa-nini. Hii ni kuhusishwa na todo sisi kupatikana mapema. Sasa todo kila ni displayable au renderable na hii kwa-nini maoni. Taarifa ya baadhi ya mashamba. Unafikiri tagName hii ni, tagName: li? Kukumbuka kutoka kabla ya wakati sisi alitaka atatoa todo sisi ingekuwa wazi jozi todos wetu na hii tag li. Sasa sisi ni kusema kwamba ambapo hii todo ni kwenda kuishi ni kwenda kuwa ndani ya tag li. Na sasa tuko pia kujihusisha na matukio todos yetu. Todo Kila tukio hili moja. Kama bonyeza pretty much kifungo kugeuza, kwamba ni nini mimi kusema huko, basi kimsingi alama todo kama kinyume cha kile ilivyokuwa kabla na kisha re-atatoa maombi. Hii ni aina ya sawa na kanuni kabla. Kumbuka wakati sisi ni alama kama ama kinyume au- na kisha sisi re-inavyosema hivyo. Lakini taarifa sasa tukio hili kutumika kwa kuwa kitu ambacho alikuwa katika HTML. Ni alikuwa amekaa pale. kifungo alikuwa bonyeza. Wakati bonyeza button, ni aina ya anafanya mambo ya kuanzisha kwamba todo kuwa pungufu. Hapa tumekuwa kuhusishwa kuwa tukio ya kubonyeza kifungo kwamba kugeuza na kupunguza kama ni juu au mbali na mtazamo huu. Hii ni njia nzuri ya kuanzisha tukio hili hivyo kwamba ni kwa nguvu sana amefungwa kwa mtazamo huu, na hivyo taarifa hii moja zaidi. Nina njia hii atatoa, na hatuna kwenda kupitia maelezo. Ni aina ya sawa na kile tulikuwa kabla, lakini taarifa mimi si looping njia ya kitu chochote. Mimi si uchapishaji kwamba tag ul hiyo ni aina ya kusema mimi nina kwenda magazeti yote ya mambo. Mimi kutoa utendaji kwa ajili ya utoaji hii moja kwa-nini bidhaa. Hii ni dhana ya nguvu sana kwa sababu kimsingi yetu orodha ya lina haya todos wote, na kama tunaweza kimsingi bayana njia ya kutoa moja ya wale todos basi tunaweza kuwa uti wa mgongo wetu nguvu per se atatoa wote wa todos kwa kupiga juu ya njia asimlipe todos mtu binafsi. Hii ni dhana kwamba ni muhimu hapa. Sasa swali nzuri ya kuuliza ni jinsi gani maombi haya kuwa kuweka pamoja? Kwa sababu tuna uwezo wa kutoa moja todo, lakini ni jinsi gani sisi kupata wazo la todos nyingi? Hebu tuangalie kwamba. Hii ni sehemu ya mwisho. Taarifa tuna orodha ya maoni hapa, na taarifa pia ni mtazamo. Na kwenda juu ya wanandoa wa mambo, njia hii initialize wataitwa wakati sisi kwanza kuunda orodha hii-do. Kama unaweza kuona, ni kama kujenga orodha kwa-nini na kujihusisha kwa mtazamo huu. Na kisha mimi aliongeza kazi hapa hivyo kimsingi wakati kuongeza item- hii ni sawa na njia addItem tuliona kabla- Mimi nina kwenda kujenga mpya todo kitu, na taarifa mimi nina kweli wito hii mpya todo mbinu, hivyo hii ni zinazotolewa na Uti wa mgongo, na siwezi kupita katika mali yangu hapa. Na sasa kila todo kwamba mimi kuunda kutumia hii kupata kwamba utendaji kuwa tuliona kabla. Taarifa mimi nina clearing nje Nakala sanduku kabla-kidogo kidogo undani- na basi mimi nina kuongeza ukusanyaji hii. Hii karibu inaonekana weird kwa sababu kabla ya sisi tu alikuwa na kufanya kwamba todos.push, na kisha sisi yalifanyika, na hii inaweza kuonekana ngumu zaidi kwa ajili ya mradi huu, hasa na unaweza kupata kwamba Uti wa mgongo au hata Angular au mfumo mwingine haina kemikali mradi wako hasa, lakini nadhani ni muhimu kufikiria hii ina maana gani kwa kiwango kikubwa kwa ajili ya miradi kubwa, kwa sababu kama tulikuwa na mradi mkubwa ambapo tulikuwa anayewakilisha baadhi ya ukusanyaji kweli tata, kitu zaidi kuliko orodha tu kwa-nini, hebu sema orodha marafiki au kitu kama hicho, hii inaweza kuja katika Handy kwa sababu sisi inaweza kuandaa kanuni zetu katika njia ya kweli urahisi, katika njia ambayo iwe rahisi kwa mtu mwingine ambaye alitaka kuchukua mradi wa kujenga juu. Unaweza kuona kwamba hii hutoa mengi ya muundo. Na kisha mimi nina wito atatoa juu addItem hii. Atatoa, kama unaweza kuona, na huna kufahamu hii syntax kamili, lakini kimsingi kwa kila mfano ni kwenda kuwaita mtu atatoa mbinu. Hiyo ni aina ya ambapo hii inakuja kutoka. Hebu tu bayana jinsi ya kutoa todos mtu binafsi, na kisha hebu gundi yao pamoja ujumla. Lakini hii inatoa njia ya ujumla, kwa sababu mimi naweza kubadilisha njia ya mimi kuamua kutoa todos mtu binafsi, na mimi bila kuwa na mabadiliko yoyote ya kanuni hii. Hiyo ni aina ya baridi. Je, mtu yeyote una maswali yoyote kuhusu mifumo JavaScript? [Mwanafunzi Inaudible swali] Oh, uhakika, kwamba ni swali kubwa. swali ni jinsi gani mimi ni pamoja na mifumo? Wengi JavaScript mifumo ya kimsingi ni tu JS mafaili kwamba unaweza ni pamoja na saa ya juu ya maadili yako. Taarifa katika sehemu ya kichwa cha HTML yangu nina haya vitambulisho wote script, na ya mwisho script tag ni kanuni kwamba tumekuwa imeandikwa. Na kisha 3 mfumo codes ni tu pia script vitambulisho. Mimi ikiwa ni pamoja na yao kutoka kile kinachoitwa CDN, ambayo inaruhusu mimi kupata kutoka mtu mwingine katika hatua hii lakini mfumo wa kila ana-hii unaweza pretty much kupata maudhui Hasa kwa JavaScript maktaba inapatikana kwenye baadhi CDN au kitu kama hicho, na kisha unaweza ni pamoja na haya tags script. Je, hiyo mantiki? Baridi. Wale ni 2 tofauti mbinu. Wale si njia pekee ya kutatua tatizo hili. Kuna mambo mengi tofauti kwamba mtu anaweza kufanya, na kuna mifumo ya wengi huko nje. Angular na Uti wa mgongo wala kumwambia hadithi nzima. Bahati nzuri na miradi yako ya mwisho, na asante sana. [CS50.TV]