>> [Music kucheza]
>> DOUG LLOYD: Kwa hiyo kwa sasa sisi ni umri faida katika programu ya mtandao, sawa?
Na tumekuwa kufunikwa kadhaa Lugha katika video ya mtu binafsi.
Na sasa hebu kufanya moja zaidi, na javascript.
>> Kwanza habari njema, na javascript ni programu ya kisasa
Lugha kiasi kama PHP ambao syntax inatokana na C,
hivyo hiyo ni nafasi nzuri kuanza.
Ni kuhusu mzee kama PHP, kama vile, baada ya kuzunguka juu ya miaka 20.
Ilizuliwa karibu huo huo kama PHP.
Na JavaScript ni kweli pretty msingi kwa uzoefu user
ya mtandao.
Kwa kweli, kuna lugha tatu kwamba mimi
kusema aina ya kufanya juu ya uzoefu user ya mazungumzo
na tovuti, html, css, na JavaScript.
Na hivyo sasa hebu majadiliano kidogo kuhusu JavaScript.
>> Habari mbaya, ingawa, na JavaScript ni kwamba unaweka mengi ya sheria kwa ajili ya yenyewe,
na kisha inavunja yao.
Na JavaScript kweli anaweza aina ya changamoto ya kujifunza,
kwa sababu ni tofauti na C na PHP, ambayo ni muundo sana
na kuwa na sheria kali sana kwa jinsi mambo wanaweza kufanya kazi.
JavaScript ina aina ya kujipatia hivyo rahisi
kwamba labda mambo si kwenda kazi kwa njia tunatarajia yao kwa,
na labda sisi kweli hawezi kujifunza kwanza lugha yetu programu
kama JavaScript.
Hivyo labda kwa sababu hana imejiwekea sheria yoyote,
na ni kweli haina kutekeleza tabia nzuri coding.
Lakini sasa tumekuwa hopefully maendeleo baadhi nzuri coding tabia,
na ili tuweze kuanza kwa kuliingia ndani ya JavaScript kidogo.
>> Kuandika JavaScript, sawa na ufunguzi up C file na nukta C ugani
au PHP faili na nukta PHP ugani, wote tunahitaji kufanya ni kufungua faili
kwa nukta JS faili ugani.
Hatuna haja ya kuwa na yoyote maalum delimiters kama tulivyofanya katika PHP.
Kwamba aina ya pembe mabano alama swali PHP
kwamba sisi ni kutumika na kwamba, njia sisi tunasema kisakuzi yetu kwamba tuna nini ni
JavaScript ni kwa pamoja hivyo katika html tag,
na tutaweza kuona kidogo kuhusu jinsi ya kufanya hivyo katika muda tu.
>> Jambo jingine kwamba inafanya JavaScript tofauti,
ingawa, ni kwamba anaendesha upande wa mteja.
Hivyo kukumbuka na PHP kwamba sisi kamwe kweli kuona
PHP kwamba mkazo tovuti.
Kama sisi milele kutazamwa ukurasa chanzo, tunataka tu
ona html kwamba alikuwa yanayotokana na kwamba PHP.
Lakini JavaScript anaendesha upande wa mteja.
Wako JavaScript anaendesha kwenye kompyuta yako.
Na hii ndiyo maana unaweza kufanya mambo kama kuongeza blockers.
Sawa?
Tangazo kuzuia ni kawaida kufanyika kwa kuua wote wa JavaScript
kwamba ni mbio kwenye tovuti fulani.
Na kwa sababu ingekuwa kwa kukimbia upande wa mashine mteja wako,
unaweza tu kuacha JavaScript kwa ajili ya kuendesha kabisa.
Hiyo ina maana kwamba wakati matumizi tovuti ya kwamba ni pamoja na JavaScript,
una kutuma JavaScript chanzo kificho ikiwa ni sehemu ya http majibu yako
kwa mteja wakati wao ombi hilo.
Na hivyo waweza si wanataka kutumia JavaScript
kufanya mambo kweli nyeti kama kupita maelezo
kuhusu nywila za watumiaji 'nyuma na nje, kwa sababu wao ni kweli
kwenda kupokea yote ya chanzo kanuni, si tu html kwamba ni kuzalisha,
kama vile itakuwa kesi na kusema PHP.
>> Hivyo ni jinsi gani sisi ni pamoja na JavaScript katika html yetu kuanza na?
Naam, sawa na CSS, kwa kweli, ni aina ya jinsi ya kufanya hivyo hapa.
Na CSS tuna vitambulisho style.
Na ndani ya vitambulisho wale style, tunaweza kufafanua karatasi CSS style.
Vile vile na JavaScript Tunaweza kufungua vitambulisho script,
tag mwingine html hatukuwa majadiliano juu katika html yetu video,
na kuandika JavaScript katika kati ya vitambulisho wale script.
Pia ingawa, kama CSS, sisi inaweza kuhusisha katika nje mafaili CSS
na kuvuta yao katika mpango wetu kwa njia hiyo.
Na CSS tunaweza pia, udhuru kwangu, na JavaScript
sisi pia unaweza kutaja chanzo sifa ya tag script
kuhusisha katika JavaScript tofauti, hivyo huna
na kuandika katika kati ya vitambulisho script, sisi
Unaweza kuhusisha katika kutumia kwamba tag script pia.
Na kama vile kwa kesi na CSS ambapo sisi ilipendekeza kwamba ilikuwa pengine
kwa maslahi yako bora kuandika CSS yako katika faili tofauti katika kesi
unahitaji mabadiliko hayo, vile vile kufanya sisi kupendekeza
kwamba kuandika yako JavaScript katika files tofauti
na kutumia vitambulisho Muswada chanzo wanampa kufunga wako JavaScript
ndani ya html yako, mtandao ukurasa wako.
>> Vigezo hivyo JavaScript, tutaweza kuanza kuzungumza juu ya syntax hapa.
Na tutaweza kwenda kupitia aina hii ya haraka,
kwa sababu tumefanya hii katika PHP, hivyo hii lazima wote kuwa pretty ukoo.
Hivyo vigezo katika JavaScript ni sawa na PHP vigezo.
Hakuna aina specifier, na wakati kuanzisha kutofautiana,
wewe kiambishi ni pamoja na var Keyword.
Katika PHP tunataka kufanya kitu kama hii, ishara ya dola x.
Hiyo ni jinsi sisi zilionyesha kutofautiana, lakini hakuna, sisi
wala kutaja aina ya kutofautiana wakati wote.
Tunataka kusema kitu kama dola ishara x sawa 44 katika PHP.
Kama tunafanya kitu kimoja katika JavaScript,
tunataka kusema var x sawa 44.
Hivyo var ni aina ya njia yetu ya kuanzisha kutofautiana.
Hiyo ni labda kidogo zaidi Intuitive kuliko tu dola ishara kutofautiana.
>> Tena, tangu hakuna aina ya data, tunaweza kufanya hivyo
na aina yoyote data, masharti, kitu kingine chochote ingekuwa wote kuwa var.
Conditionals, wote wa wetu marafiki wa zamani kutoka C na PHP
bado zinapatikana, hivyo tuna ikiwa, mwingine kama, mwingine, kubadili na swali
alama ya matumbo.
Kubadili iliyobaki kama rahisi kama ni Ilikuwa katika PHP, lakini yote haya uko
ukoo na kwa sasa.
Na vile vile kwa mizunguko ni favorites zamani wa muda,
kufanya wakati, na kwa bado inapatikana kwa sisi.
Hivyo tayari tunajua mengi ya msingi JavaScript aina ya misingi
tu kwa mujibu wa kuwa na kidogo kabisa ya maarifa sasa kuhusu C na PHP.
>> Je kuhusu kazi katika JavaScript?
Naam, sawa na PHP kila kazi ni ilianzisha na kazi Keyword.
Unasema kazi, na kisha kuanza kufafanua kazi yako.
Nini tofauti kidogo kuhusu JavaScript,
ingawa ni uwezo wa kuwa na kile kinachoitwa kazi bila majina.
Hivyo unaweza kufafanua majukumu kwamba hawana jina.
Hili ni jambo sisi kweli hawajaona kabla.
Tutaweza kweli kutumia dhana ya kazi bila majina
Muda mfupi baadaye katika hii video, kwa sababu itabidi
mantiki zaidi kidogo katika mazingira wakati sisi kuona katika hali fulani
kwamba nimepata crafted hapa.
Lakini hebu tu kuangalia nini rahisi JavaScript
kazi ili kuangalia kama.
>> Hivyo nimekuwa wamekwenda mbele na imefungua CS50 yangu IDE
na nimekuwa tayari kukimbia Apache kuanza server yangu mbio.
Na nina faili hili kufungua aitwaye Home.html.
Na mimi itabidi kuvuta kidogo hapa.
Na kimsingi, unaweza kuona Home.html ni tu rundo la vifungo.
Na mimi nina wakidai juu hapa kwamba hii ni sehemu JavaScript
vifaa.
Hivyo kuna kundi la vifungo hapa, lakini je, vifungo hizi kwa kweli kufanya?
>> Vizuri, tutaweza kichwa juu ya IED yangu, na mimi Home.html kufungua hapa.
Mwanzoni kabisa, hapa ndipo mimi nina kuunganisha
katika yote ya yangu mafaili chanzo JavaScript.
Sawa?
Hivyo nina anonymous.js, clock.js, Mimi nina kutumia chanzo sifa
ya tag script kuhusisha katika faili.
Hivyo Sikuwaandikia yoyote JavaScript moja kwa moja kwenye faili hili,
lakini nimekuwa kujiondoa katika yote JavaScript nimekuwa imeandikwa tofauti.
Na kama sisi kitabu chini hapa, hii lazima wote kuangalia kiasi fulani ukoo
kwa kidogo ya syntax mpya.
Tunayo kichwa tag kwa kazi na kisha kifungo.
Nina pembejeo hiyo ni aina ya kifungo, na inaonekana wakati mimi click yake,
Mimi nina kwenda kuwaita baadhi kazi tahadhari tarehe.
Na hii ni jinsi gani tunaweza aina ya kuchanganya kidogo ya JavaScript na html.
Wao kweli kucheza pretty vizuri pamoja, na hivyo inaonekana wakati
Mimi bonyeza kifungo hii, mimi nina kwenda kuwaita baadhi tarehe tahadhari kazi.
Na vile vile kuwa na mimi inavyoelezwa tabia kwa wote wa vifungo vingine ambavyo
ni juu ya kwamba ukurasa home.html, ambayo tutaweza kuweka kurudi
kwa wakati wa kozi ya video hii.
Lakini hebu kwenda nyuma hadi hapa na kuangalia
katika clock.js, ambayo ni JavaScript faili kwamba mimi
aliandika kwamba ina kazi hii kwanza tunakwenda tuangalie.
Kama unaweza kuona, mimi kuanza yangu JavaScript kazi na keyword kazi,
na Nimekupa hii a moja jina, ni kuitwa tahadhari tarehe.
Ndani ya huko, mimi inaonekana kujenga kutofautiana mpya za kuitwa tarehe ya sasa.
Na mimi nina kwenda kuwapa sawa na tarehe mpya.
Na tunaweza kupata katika mengi ya undani kama yale tarehe ni,
na kwa kweli JavaScript ni hivyo kubwa kwamba hatuwezi uwezekano
kufunika kila kitu katika moja video.
Lakini inatosha kusema, hii ni kwenda kurudi kwangu bidhaa takwimu ambazo
encapsulates tarehe ya sasa na wakati.
Mimi kuhifadhi kwamba katika kutofautiana kwamba mimi nina inaonekana kwenda kwa macho tarehe ya sasa.
>> Naam, ni nini tahadhari sasa tarehe kuangalia kama?
Hebu tuangalie faili yenyewe kuunga zaidi katika dirisha browser.
Hivyo tena, hii ni kifungo kwamba mimi kuwa amefungwa na, hii kazi aitwaye.
Na mimi click yake huko na kuangalia nini alifanya, ni wamehamasika.
Ni popped up aina hii ya sanduku kuwaambia mimi kwamba wakati wa sasa ni, inaonekana
ni Novemba 4 katika 10:43:43 asubuhi.
Na kama mimi click yake tena, sasa ni sekunde chache baadaye, sawa?
Hivyo hiyo ni kazi haya yote gani.
Wakati mimi bonyeza kifungo hii, pops up ujumbe tahadhari kwangu.
Kwa hiyo, kuna kweli si sana kwa kazi
hiyo ni tofauti na PHP, kidogo tu ya syntax mpya
kuja na kufanya kazi na JavaScript.
>> Arrays katika JavaScript ni pretty moja kwa moja.
Kutangaza safu, matumizi mabano mraba syntax
kwamba sisi ni ukoo na kutoka PHP.
Na sawa na PHP, sisi pia unaweza kuchanganya aina ya data.
Hivyo safu hii, wote ya arrays haya ingekuwa
kuwa kikamilifu halali JavaScript.
Moja kwamba ni integers wote, na moja ambayo ni mchanganyiko up aina mbalimbali data.
>> Nini kitu tofauti sana katika JavaScript, ingawa?
Hiyo ni dhana ya kitu.
Hivyo labda wewe Nimesikia ya kitu Programu oriented.
Hatuwezi kufanya mengi ya hayo katika CS50, lakini sisi kufanya kazi kidogo ya hiyo
hapa katika mazingira ya JavaScript.
Sasa JavaScript ina uwezo wa kuishi kama kitu oriented programu
lugha, lakini si yenyewe peke kitu oriented
lugha ya programu.
Na hii tena inakuja nyuma kwa nini nilivyosema, ni
inaweza kuwa changamoto sana kujifunza JavaScript kama kompyuta yako kwanza
lugha, kwa sababu hana kweli fit dhana fulani.
>> C Kwa upande mwingine ni kazi lugha ya programu.
Kama tunataka, kazi ni aina ya bosi kubwa mtu, sawa?
Wao kulazimisha kile hutokea kila kitu kingine.
Tunataka mabadiliko vigezo, tunatoa wito kazi.
Sisi kufanya mambo kwa kazi.
Vitu badala yake, katika kitu oriented lugha,
vitu aina ya kuwa nyota na kazi kuwa aina ya sekondari.
Lakini ni nini kitu gani ni wazo hili la kitu?
Naam, kama inasaidia, fikiria kuhusu hilo wakati aina ya kwanza
ya kama C muundo au struct kuwa tumejifunza kuhusu kabla.
Katika C, muundo inajumuisha idadi ya mashamba,
na labda sisi sasa inaweza kuanza piga mashamba hayo mali.
Lakini mali kamwe kweli kusimama peke yao, sawa?
Kama mimi kufafanua muundo kwa ajili ya gari kama hii kwa kufuatia wawili
mashamba au mali, an moja integer kwa mwaka wa gari
na mwingine 10 tabia kamba kwa mfano wa gari,
Naweza kusema kitu kama hiki, Siwezi kutangaza kutofautiana mpya
ya aina struct gari Herbie.
Na kisha siwezi kusema kitu kama herbie.year sawa na 1,963,
na herbie.model sawa na mende.
Hiyo ni sawa.
Mimi nina kutumia mashamba katika mazingira ya muundo,
lakini mimi naweza kamwe tu kusema kitu kama hiki.
Sawa?
Siwezi kutumia jina uwanja huru ya muundo.
Ni aina ya kitu kimsingi.
>> Hivyo mashamba akiwa msingi kwa miundo C
ni sawa na mali kuwa msingi kwa JavaScript vitu.
Lakini nini inawafanya hasa ya kuvutia
ni kwamba vitu inaweza pia kuwa na kile zinaitwa mbinu, ambayo ni kweli
tu neno dhana kwa kazi ambayo ni asili ya kitu kama vile.
Hivyo ni kazi ambayo inaweza tu kuwa kuitwa katika mazingira ya kitu.
Tu kitu ambayo ina defined kazi hii ndani ya yake,
kama unadhani kuhusu struct, kazi
inaelezwa ndani ya wale kufafanua braces curly ya muundo.
Hivyo ina maana kitu tu na muundo.
Na hiyo ni aina ya nini sisi ni kufanya hapa na vitu na mbinu.
Ni kimsingi kama tuko kufafanua kazi ambayo
tu mantiki juu ya kitu fulani, na hivyo sisi
wito kwamba njia ya kitu.
Na hatuwezi kuwaita kwamba kazi ya kujitegemea ya kitu,
kama hatuwezi kusema mwaka au mfano wa kuigwa huru ya struct katika C.
>> Programu hivyo kazi dhana kuangalia kitu kama hii.
Kazi na kisha wakati kupita katika kitu kama parameter.
Katika kitu oriented programu lugha, hii aina ya anapata
flipped, na tunataka kufikiria kuhusu ni kama hii, object.function.
Hivyo ni aina ya kwamba dot operator tena ikimaanisha
kuwa ni aina fulani ya mali au sifa ya kitu yenyewe.
Lakini hii ni nini kitu oriented programu lugha
inaweza kufanya ili kufanya kazi wito kwa mbinu, tena, ambayo
ni neno maalum kwa ajili ya kazi kwamba ni asili ya kitu.
Hii ni nini kwamba syntax ili kuangalia kama.
Na hivyo tutaweza kuanza kuona baadhi ya huu katika mazingira ya JavaScript.
>> Unaweza pia kufikiri juu ya kitu aina ya kama safu associative,
ambayo sisi ni ukoo na kutoka PHP.
Kumbuka safu associative inaruhusu yetu kuwa na thamani jozi ufunguo, badala
ya kuwa na bahati 0, moja, mbili, tatu, na kadhalika kama sisi ni kutumika kutoka C
arrays.
Associative arrays unaweza ramani maneno, kama vile katika PHP video,
sisi walikuwa wanazungumza juu matamu ya pizzas.
Na hivyo tulikuwa na safu aitwaye pizzas, na sisi
alikuwa jibini alikuwa ufunguo na $ 8.99 mara thamani, na kisha pepperoni ilikuwa muhimu,
$ 9.99 ilikuwa thamani, na kadhalika.
Na hivyo tunaweza pia kufikiri juu ya kitu aina ya sawa na associative
safu.
Na hivyo syntax hii hapa ingekuwa kujenga kitu kipya
aitwaye Herbie na mbili mali ndani yake.
Mwaka, ambayo ni kwa ajili thamani 1963, na mfano, ambayo ni kwa ajili kamba
Mende.
>> Na taarifa hapa kwamba mimi nina kutumia quotes moja katika JavaScript.
Unaweza kutumia quotes moja au mbili wakati wewe ni kuzungumza juu ya masharti.
Ni tu conventionally kesi hiyo mara nyingi
wakati wewe ni kuandika JavaScript, wewe tu kutumia quotes moja.
Lakini mimi naweza kutumia quotes mbili hapa, na kwamba itakuwa kikamilifu faini pia.
>> Basi kumbuka jinsi katika PHP tulikuwa wazo hili
ya kwa kila kitanzi ambayo ingeweza kuruhusu sisi iterate juu ya yote ya thamani muhimu
jozi ya associative safu, kwa sababu sisi
hawakuwa na uwezo huo iterate kupitia 0, moja, mbili, tatu, nne,
na kadhalika?
JavaScript ina kitu sawa sana, lakini siyo kuitwa kwa ajili ya kila kitanzi,
ni kuitwa kwa katika mizunguko.
Hivyo kama mimi akaniambia kama hii, kwa var muhimu katika kitu,
hiyo ni aina ya sawa na kusema kwa kila kitu kama kitu fulani.
Lakini wote mimi nina kufanya hapa ni iterating njia zote za funguo za kitu yangu.
Na ndani ya curly inakabiliwa na huko, napenda
kutumia kitu mabano mraba muhimu kwa kutaja kwa thamani wakati huo eneo muhimu.
>> Vinginevyo, kuna hata mwingine mbinu.
Kama mimi tu tu huduma ya juu maadili, naweza kusema kwa ufunguo wa kitu,
na tu kutumia ufunguo ndani.
Hivyo kwa var muhimu katika kitu, nina kutumia kitu mabano mraba
ufunguo ndani ya kitanzi.
Kwa var ufunguo wa kitu, siwezi tu kutumia ufunguo ndani ya kitanzi,
kwa sababu mimi nina tu mahsusi kuzungumza juu ya maadili huko.
>> Basi hebu labda kuchukua tuangalie tofauti
tu kwa haraka kuonyesha Tofauti kati ya nne
katika na kwa wa na maalum sana safu, ambayo sisi hapa, wiki safu.
Hivyo nina kupata safu mpya kwamba mimi kujazwa na masharti saba,
Jumatatu, Jumanne, Jumatano, Alhamisi, Ijumaa, Jumamosi, Jumapili.
Na mimi nataka sasa iterate kupitia safu hii,
uchapishaji nje habari fulani.
Kama mimi kutumia kwa kitanzi katika magazeti nje ya habari,
unafikiri nini mimi nina kwenda kupata?
Naam, hebu tuangalie.
Na kabla ya sisi kuruka juu kwa browser window wangu,
tu kujua kwamba console.log ni aina ya mtu
njia ya kufanya magazeti F katika JavaScript.
Lakini ni nini console?
Naam, hiyo ni nini tunakwenda kwenda kuangalia hivi sasa.
>> OK, hivyo tuko nyuma hapa katika browser window wangu,
na mimi nina kwenda kufungua up developer yangu zana.
Tena, mimi kupiga F12 tu kufungua zana developer.
Na taarifa kwamba hapa katika juu nimekuwa waliochaguliwa console.
Hivyo hii ni dhana ya developer console,
na itakuwa kuruhusu sisi magazeti ya kampuni nje,
aina ya kama wastaafu, lakini kama utaona baadaye kidogo,
sisi pia unaweza aina katika maelezo kuingiliana na mtandao wetu ukurasa.
Mimi nina kwenda kuvuta kidogo hapa, na mimi nina gonna sasa click kwenye maana katika mtihani.
Na nne katika test-- mimi nina gonna kuonyesha kificho kwa sasa hivi,
lakini utasikia kupata kama wewe download chanzo kanuni kwamba
ni kuhusishwa na video-- hii ni tu kwamba kwa kitanzi katika
kuwa tuliona tu pili iliyopita juu ya slide.
>> Hivyo mimi nina gonna click kwamba kifungo, na zaidi ya hapa,
hapa ni nini ina kuchapishwa katika console, 0, moja, mbili, tatu, nne, tano,
sita.
Sikuwa magazeti nje maelezo ndani ya maeneo hayo safu,
kwa sababu mimi kutumika kwa katika kitanzi.
Na ndani ya mwili wa kitanzi, mimi tu kuchapishwa muhimu si kitu muhimu.
Lakini kama mimi sasa wazi console wangu, nami kubadili kwa mtihani, na nne ya mtihani
Nasema mimi kutumia kwa kitanzi cha badala na magazeti nje muhimu,
kama mimi bonyeza kwamba, sasa mimi nina kupata mambo halisi ndani ya kitu yangu
au safu yangu katika kesi hii.
Safu yangu ya siku wiki.
Mimi kuchapishwa Jumatatu, Jumanne, Jumatano.
Hivyo hiyo ni tofauti kati a kwa katika kitanzi, ambayo Prints nje
tu funguo kama wewe tu kutumia ufunguo ndani ya mwili wa kitanzi,
na kwa ya kitanzi, ambayo prints nje maadili kama wewe tu kutumia
ufunguo ndani ya mwili wa kitanzi.
>> Haki wote, ni jinsi gani sisi sasa kuanza concatenate masharti na labda kuchanganya
baadhi ya vigezo na kitabu kama tulikuwa na uwezo wa kufanya katika PHP?
Naam, sisi ni pretty ukoo na hii kutoka PHP.
Hii ni jinsi gani tunataka kufanya hivyo kwa kutumia dot operator kwa concatenate masharti.
Katika JavaScript, ingawa, sisi kweli kutumia kitu
aitwaye pamoja na alama, ambayo ni labda hata kidogo zaidi
Intuitive, haki?
Sisi ni kuongeza rundo ya masharti pamoja.
Basi hebu kichwa nyuma zaidi na kuona nini huu
magazeti kama sisi ni kujaribu magazeti nje wote wa habari katika wiki safu.
Haki wote, hivyo chini ya hapa chini ya kamba concatenation,
Nina chaguzi mbili, kamba jengo V1 na kisha kamba jengo V2.
Na tutaweza kuona nini sisi haja V2 katika pili.
Lakini mimi nina gonna click kwenye kamba jengo V1, ambayo
ni kanuni tulikuwa tu kuchukua kuangalia,
console.log na wote wa pluses.
Hebu angalia kama hii prints nini tunatarajia.
>> Jumatatu ni siku idadi 01 ya juma, Jumanne ni siku namba 11 ya wiki.
Naam, ni nini mimi alikuwa anajaribu kufanya kulikuwa na kupata
ni magazeti nje Jumatatu ni siku idadi moja, Jumanne ni siku namba mbili.
Lakini inaonekana kama mimi nina Daima uchapishaji nje moja.
Naam, kwa nini ni kwamba?
Naam, ni zamu nje, tuangalie tena katika snippet hii ndogo ya kificho hapa.
Taarifa kwamba sisi ni kutumia pamoja operator katika mazingira mawili tofauti.
>> Na hivyo hapa ni wapi labda mambo kwamba tumekuwa aina ya wamekuwa wakisema,
loo, ni kubwa sana.
Hatuna kukabiliana na aina ya data tena.
Lakini hapa ni ukweli ambapo kwamba tunapoteza aina ya data
kweli anaweza kuwa kidogo nyingine ya matatizo kwetu.
Sasa kwa kuwa pamoja na alama hutumika concatenate masharti na kuongeza idadi
pamoja, na javascript ina kwa kufanya nadhani bora
kama kwa nini nataka ni kufanya kwa ajili yangu.
Na katika kesi hii, ni guessed vibaya.
Ni tu concatenated siku, ambayo itakuwa ni 0, moja, mbili, tatu, nne, tano, sita au,
na kisha tu concatenated kuwa na kisha concatenated moja.
Haikuwa kweli kuongeza yao pamoja.
Na hivyo lugha hizi, PHP na JavaScript,
kuwa abstracts mbali wazo hili la aina,
huna kukabiliana nayo tena.
Hawana bado wana aina chini ya kofia.
Na tunaweza, katika hali kama hii, kujiinua ukweli kwamba
kwa kusema kitu kama labda hii, ambayo
ni kuwaambia JavaScript, na njia, kutibu hii kama integer,
hawana kutibu kama kamba, hata ingawa sisi ni kuchanganya pamoja masharti
na integers hapa.
>> Ni tu moja ya mambo kwamba inaonekana ni kubwa sana katika mazingira
kwamba hatuna kwa kukabiliana na aina tena,
lakini wakati mwingine utasikia kukimbia katika hali
hasa kama hii ambapo ukweli kwamba huna mamlaka juu ya aina
unaweza kukwama juu ya wewe kama wewe si makini.
Na hivyo kama sisi pop nyuma zaidi kwa IDE, mimi nina kwenda wazi nje console yangu tena,
na mimi nina kwenda click kamba jengo toleo la mawili, ambayo
Hapa ndipo mimi kutumia kwamba parse int kazi.
Sasa ni uchapishaji nje habari kwamba mimi nina kutarajia.
Jumatatu siku namba moja, Jumanne ni siku namba mbili, na kadhalika.
>> Basi hebu majadiliano juu ya kazi tena.
Mimi aliahidi tunataka kuzungumza juu bila majina kazi, na sasa mazingira kwa kuwa
ina hatimaye aliwasili.
Hivyo kabla ya sisi kufanya hivyo, hebu majadiliano tena kuhusu arrays kwa ajili tu ya pili.
Hivyo arrays ni maalum kesi ya kitu.
Kwa kweli, kila kitu katika JavaScript ni kweli kitu.
Hivyo kazi ni kesi maalum ya kitu,
integers ni maalum kesi ya kitu,
lakini arrays mahsusi kuwa na idadi ya mbinu.
Kumbuka kwa sababu wao ni vitu, wanaweza kuwa na mali na mbinu.
Wao kuwa na idadi ya mbinu kwamba inaweza kutumika kwa vitu hivyo.
Kuna njia inayoitwa ukubwa, array.size,
ambayo atarudi wewe kama unaweza kutarajia
idadi ya vipengele katika safu yako.
array.pop, aina ya kama dhana yetu ya yanajitokeza mbali
ya stack, kama unakumbuka kutoka mwingi yetu video,
kuondosha kipengele mwisho kutoka safu.
array.push anaongeza kipengele mpya hadi mwisho wa safu.
array.shift ni aina ya kama DQ, ni splices nje
kipengele sana kwanza ya safu.
>> Lakini pia kuna mwingine maalum njia ya safu kuitwa ramani.
Na hii ni aina ya dhana ya kuvutia.
Hivyo ni wazo la ramani nini?
Itabidi kweli kuona hii katika lugha zingine kadhaa,
na sisi siyo kuzungumza juu ya aina ya cartographers ramani hapa,
tunazungumzia ramani kazi.
Katika mazingira tuko kuzungumza juu hapa, ramani
ni maalum operesheni sisi anaweza kufanya juu ya safu
kuomba kazi fulani kwa kila kipengele cha safu hiyo.
na hivyo tunataka kusema katika kesi hiyo, labda array.map,
na ndani yake, sisi ni kupita ndani ya ramani ni kazi ambayo tunataka
kutumika kwa kila kipengele moja.
Hivyo ni aina ya sawa na kutumia kitanzi iterate juu ya kila kipengele
na kuomba hasa kazi kwa kila kipengele,
tu JavaScript ina hii kujengwa katika dhana ya ramani ambayo inaweza kutumika.
Na hii ni mantiki kubwa ya majadiliano juu ya kazi bila majina.
>> Hivyo hebu sema tuna safu hii ya integers.
Ni wito nums, na ni got tano mambo ndani yake, moja, mbili, tatu, nne,
tano.
Sasa nataka map baadhi kazi kwenye safu hii.
Nataka kuwa na kazi kuomba kwa kila kipengele cha safu.
Naam, hebu kusema kwamba nini nataka kufanya ni mara mbili tu wote wa mambo.
Kitu ambacho ninaweza kufanya ni tu kutumia kitanzi kwa var mimi ni sawa na 0, mimi ni chini ya
au kwa sawa 4, mimi pamoja, pamoja, na kisha mara mbili kila namba moja.
Lakini siwezi pia kufanya kitu kama hiki.
Naweza kusema nums ilikuwa zamani moja, mbili, tatu, nne, tano,
sasa, ingawa, napenda wewe kuomba ramani kwenye safu hii
ambapo Ningependa kuongeza mara mbili kila idadi.
Na hii ndiyo hasa nini kinatokea hapa.
Lakini taarifa nini mimi kupita katika kama hoja kwa ramani.
Hii ni kazi bila majina.
Na taarifa mimi si kupewa hii kazi jina,
Nimekuwa tu iliyotolewa yake orodha parameter.
Na hivyo hii ni mfano ya kazi bila majina.
>> Sisi kwa ujumla kamwe wito huu kazi nje ya mazingira ya ramani.
Sisi ni kufafanua kama parameter ramani, na hivyo sisi si kweli
haja ya kuwa na jina kwa ajili yake kama Kitu tu kwamba anayejali kuhusu ni ramani
na ni kuelezwa haki kuna ndani ya ramani.
Na hivyo hii ni kazi bila majina.
Sisi hawajaweza kufanya hivyo hapo awali.
Ramani baadhi ya kazi kwamba anapokea parameter moja, num,
na nini kazi hiyo haina ni faida Hesabu mara 2.
Na hivyo baada ya hii ramani imekuwa inatumika,
hii ni sasa nini nums inaonekana kama, mbili, nne, sita, nane, 10.
Na tutaweza pop juu ya yangu browser window na tu
tuangalie hii kweli haraka pia.
>> Hivyo nina kifungo mwingine hapa katika ukurasa wangu wa nyumbani aitwaye mbili.
Na wakati mimi bonyeza mara mbili, na anaelezea mimi kabla alikuwa moja, mbili, tatu, nne,
tano baada ya mbili, nne, sita, nane, 10.
Na kama mimi kurudi nyuma na bonyeza mara mbili tena, mbili, nne, sita, nane, 10.
Na kisha baada, nne, nane, 12, 16, na kisha 20.
Na je, Mimi kufanya katika kazi hii?
Naam, kama sisi tu pop juu ya IDE, na Mimi kuvuta up kazi yangu bila majina, hapa
kwenye mstari saba kwa njia ya 13, mimi nina kufanya kidogo kazi dhana hapa,
lakini mimi nina uchapishaji tu nje nini sasa katika safu.
Kisha katika mstari wa 16, 17, na 18, kuna ramani yangu.
Hii ni pale ambapo mimi nina kutumia mara dufu hii kazi kwa kila kipengele moja.
Na kisha kidogo zaidi chini, Mimi nina kufanya kitu kimoja tu
Mimi nilikuwa kufanya kabla, ila sasa mimi nina uchapishaji nje yaliyomo ya safu
baadaye.
Lakini yote nimepata kufanyika hapa ni tu kutumia kazi bila majina
ramani hela safu nzima.
>> Hivyo moja zaidi kubwa ya mada ya majadiliano juu katika JavaScript ni dhana ya tukio hilo.
Tukio hilo ni jambo ambalo hutokea tu wakati mtumiaji interacts na mtandao wako
ukurasa, hivyo labda wao bonyeza kitu, au labda ukurasa imekwisha kupakia,
au labda wameweza wakiongozwa panya wao juu ya jambo fulani,
au wameweza typed kitu katika uwanja pembejeo.
Mambo yote haya ni matukio ambayo yanatokea kwenye mtandao wetu ukurasa.
Na JavaScript ina uwezo wa kusaidia kitu
aitwaye tukio handler, ambayo ni kazi callback kwamba
anaitikia kwa tukio html.
Na nini kazi callback?
Naam, ni kwa ujumla mwingine tu jina kwa kazi bila majina.
Ni kazi ambayo anaitikia kwa tukio hilo.
Na hii ni mahali ambapo sisi kuja wazo la kisheria baadhi ya kazi
kwa fulani html sifa.
Wengi html mambo na msaada kwa ajili ya sifa
kwamba hatukuwa kuzungumzia katika html video kwa kitu kama juu ya click
au juu ya hover au juu ya mzigo, wote wa matukio haya
uweze kisha kuandika kazi kuwa mpango huo kwa matukio hayo
wakati matukio hayo kutokea kwenye mtandao ukurasa wako.
>> Na hivyo labda html yako inaonekana kitu kama hiki.
Na mimi kuwa vifungo mbili hapa, kifungo moja na kifungo mbili,
na hapa nina sasa inavyoelezwa kitu,
lakini hii ni mahali ambapo sifa juu ya click ni inaonekana sehemu ya html tag yangu.
Hivyo inaonekana wakati mimi kufafanua nini kinachoendelea ndani ya kwamba sifa,
ni kwenda kuwa baadhi JavaScript kazi ambayo anaitikia kwa tukio
labda ya kubonyeza kifungo moja au kifungo hizo mbili.
>> Nini aina ya baridi kuhusu hili ni sisi Unaweza kuandika kurefusha maisha tukio handler.
Na hii Handler tukio mapenzi kujenga tukio kitu.
Na tukio kitu kutuambia yupi kati ya vifungo mbili ilikuwa clicked.
Sasa jinsi gani kazi hiyo?
Naam, inaweza kuangalia kitu kama hiki.
Hivyo tutakuwa kwanza kufafanua vifungo yetu kuwa na kukabiliana na callback
kazi ambayo wataitwa wakati kifungo ni clicked,
tutaweza wito tukio tahadhari jina.
Na taarifa katika kesi zote mbili tuko kupita katika hii parameter tukio hilo.
Hivyo sisi kuwaita kazi hii au wakati kazi hii
ni yalisababisha na tukio kinachotokea, itakuja kujenga hii kitu tukio
na kuupitisha kama parameter kwa macho jina.
Na kwamba tukio kitu ni kwenda yana habari
kuhusu ambayo kifungo ilikuwa clicked.
Na jinsi gani kufanya hivyo?
Naam, inaweza kuangalia kitu kama hiki.
Hivyo sasa katika tofauti yangu JavaScript faili, nipate
una kupata hii kazi tahadhari jina, ambayo
tena anakubali kuwa parameter tukio hilo.
Na kisha hapa ni mahali ambapo mimi nina kuchunguza ambayo ilikuwa yalisababisha kifungo,
var trigger sawa na tukio dot chanzo kipengele.
Nini ilikuwa chanzo kwamba kuundwa hii kitu tukio hilo kuwa ilipitishwa katika?
Ilikuwa ni kifungo moja au ilikuwa ni kifungo mbili?
>> Na kisha hapa zote mimi nina kufanya ni uchapishaji nje trigger.innerhtml.
Naam, katika kesi hii, katika hii mazingira, trigger.innerhtml
ni yale tu yaliyoandikwa juu ya kifungo.
Ni hivyo tu hutokea kama sisi kuruka nyuma kwa ajili ya pili, kwamba ingekuwa
kuwa nini katika kati ya vitambulisho wale kifungo.
Itakuwa kifungo moja au kifungo hizo mbili.
Na hebu tuangalie jinsi hii handler tukio ingekuwa
kuangalia kama tulikuwa ni mbio katika mazoezi.
>> Hivyo kwanza ya yote, wewe wameweza imefungua events.js,
ambayo ni JavaScript faili ambapo I have inavyoelezwa kazi hii.
Na kama unaweza kuona, ni pretty much nini hasa
sisi tu kuona kwenye slide pili iliyopita.
Nami kwenda juu ya ukurasa wa nyumbani tumekuwa kutumia.
Na mimi kuwa hapa kifungo moja na kifungo hizo mbili.
Na mimi itabidi bonyeza kifungo moja.
Wewe clicked juu ya kifungo moja, kama wewe Unaweza kuona haki hapa katika tahadhari.
SAWA.
Bonyeza kifungo mbili, clicked juu ya kifungo mbili.
>> Hivyo vifungo wote wana sawa kazi wito, sawa?
Wote wawili walikuwa jina tahadhari tukio, lakini hii kitu tukio
kwamba anapata kuundwa wakati sisi bonyeza inatuambia ambayo kifungo ilikuwa clicked.
Hatukuwa na kuandika tofauti mbili kazi au kukabiliana na kuwa na
kupita maelezo yoyote ya ziada.
Sisi ni kutegemea tu juu ya nini JavaScript mapenzi
kufanya kwa ajili yetu, ambayo ni kujenga kwamba aina ya tukio kitu kwa niaba yetu.
Kuna mengi zaidi kwa JavaScript kuliko nini tumekuwa kufunikwa katika video hii,
lakini baada ya haya msingi lazima kupata wewe
kabisa njia ya muda mrefu kwa kujifunza kila kitu utasikia
unahitaji kujua kuhusu hii kuvutia lugha.
Mimi nina Doug Lloyd.
Hii ni CS50.