R.J. Aquino: Se pou nou jis jwenn te kòmanse. Se konsa, sa a se egzamen 1. Men kèk enfòmasyon wo nivo. Paj la sou pou egzamen an se nan nivo sa a URL, pa gen ankò CS50.net, byenke ki ap toujou travay. Li nan CS50.harvard.edu/quizzes/2013/1. Li nan gwo a sou paj, di ou kote ak ki lè, sètadi Mèkredi pwochen nan yon pakèt moun sou chanm. Apre sa, pa Mèkredi pwochen, mwen vle di de jou soti nan kounye a. Tout enfòmasyon sa a ki gen la. Men, li se kimilatif. Se konsa, tout bagay soti nan pwemye mwatye nan a ane a se potansyèlman sou egzamen an, paske ou pa ka vrèman fè avanse bagay sa yo nan C san yo pa si kondisyon ak pou pasan ak renmen an. Men, gen yo pral yon anfaz sou la materyèl ki kouvri depi egzamen 0, kòmanse avèk strukt ak File Mwen / O. Li nan tipikman plis difisil pase egzamen 0. Nòt an mwayèn se tipikman pi ba yo. Etidye difisil. Pandan w ap etidye, asire w ou sèvi ak CS50/discuss to post kesyon ou epi li kesyon lòt moun. Se konsa, si ou pa gen nenpòt kesyon, ouvri sesyon an epi li kesyon zanmi ou yo. Yo ap pwobableman bon kesyon. Lèfini, n'a pran ti tès yo pratik. Nou te ap bay ti tès pou sèt oswa uit ane kounye a. Yo ap tout sou entènèt. Kesyon tan kap vini yo sanble nan kesyon fin vye granmoun. Sa a ki jan nou fè yo. Egzamen an pa egziste ankò. Te Okenn nan nou wè l '. Men, li pral gade tankou ti tès anvan yo. Pou sesyon revizyon sa a, sa a se pa yon lis konplè nan sijè. Ou pa ka jis ale nan sa a ak Lè sa a, dwe parfe pare pou egzamen an. Sinon, li pa ta dwe ke anpil nan yon egzamen. Lè sa a se tou pa nesesèman tout bagay ou bezwen konnen sou nenpòt ki bay sijè. Li vle di ke yo ekspoze ou nan bagay sa yo nou te kouvri, fè ou sonje ki sa nou kouvri, epi wout la nan ki nou kouvri l '. Men, w ap gen ale pi lwen ak pi fon lè w ap etidye doub-chèk ke ou konnen tout bagay sou nenpòt ki bay sijè epi ke ou te ranpli nan tout kwen ki te kouvri nan konferans. Nòt yo egzamen di ou pou yo ale nan la nòt sekretè, kite dòmi pran nou konferans videyo. Sa se yon bon fason asire w ke ou te gen kouvri tout baz ou a. Se konsa, jwenn te kòmanse, lè mwen te fè sa yo glisad, mwen te eseye mete kote mwen te jwenn enfòmasyon. Se konsa, pou w ranpli I / O, pou egzanp, Semèn 7, Konferans Lendi a, epi afiche nan Seksyon 6 ak Pwoblèm mete tout gen enfòmasyon sou File Mwen / O. Mwen te fè sa a pou chak sijè. Se konsa, moun glisad tit kapab dwe ede-w. Se konsa, isit la nou gen File Mwen / O. Sonje byen, nan Pwoblèm Mete 5, nou itilize fopen, fkloz, fwrite, frèd, ak fik. Èske w gen refè 30ish JPEGs ak li te gen rdimansyone ak messed ak Bitmap, ou ta dwe trè abitye ak fonksyon sa yo ak ki jan yo travay. Si ou pa yo konnen yo, definitivman revize yo. Apre sa, asire w ke ou konprann ki sa agiman yo diferan yo, lè yo ap itilize yo. Men, pinèz yo ki gen rapò ak dosye komen yo ka mande sou - byen, si ou te bliye tcheke si fopen aktyèlman te travay anvan ou ale nan modifye yon dosye. Sa ta ka move. Si ou te bliye fkloz yon dosye ke ou te fopened, ki nan menm jan ak yon fwit memwa. Sa a trè move. Apre sa, bliye yo tcheke si ou te rive nan fen an nan dosye a anvan ou kòmanse ekri ak li. Se konsa, si ou di, hey, mwen se nan fen a nan dosye a. Ban m '5 plis bytes. Oke, ki nan pwobableman pa ale nan travay deyò wout la w ap atann. Sa ki nan vrèman li pou w ranpli I / O, paske nou fè sa konsa vre anpil nan li ak pwoblèm nan mete. Se konsa, si ou konprann sa ki te ale sou nan Pwoblèm Set 5, sonje bitmats yo ak JPEGs yo, Lè sa a, w ap pwobableman tout fikse pou w ranpli I / O. Si sa a, se yon ti jan mou, definitivman revize ke pwoblèm mete ak materyèl la ki asosye. Strukt te sijè sa a ki te sou la liy ant egzamen 0 ak egzamen 1. Pa t 'byen fè koupe a pou egzamen 0. Se konsa, yo pral definitivman dwe sou Egzamen 1, Semèn 7, Lendi. Ki sa ki se yon konstri? Isit la nou montre yon konstri. Se tankou yon kalite nouvo. Se tankou yon veso pou jaden miltip. Nan ka sa a, nou te deklare yon konstri elèv ki gen de jaden - yon kòd ke nou ap rele non ak yon Int ke nou ap rele laj. Se konsa, lè, fòk mwen pase alantou elèv oswa mwen modifye elèv yo, mwen pral kapab jwenn aksè nan non yo ak laj yo. Se pou yo gade nan kèk Kòd pou sa. Isit la nou wè ke mwen te deklare elèv yo tounen yon s, jis tankou Mwen deklare nenpòt varyab - Int x, Int y, et setra. Isit la nan s elèv yo. Li te kòmanse ak pa gen anyen nan jaden l 'yo. Se konsa, kite a mete yo. Ou mete jaden nan yon konstri ak dot. Se konsa, mwen te di isit la ke s.name = RJ. Apre sa, s.age = 21. Ou kapab tou mete jaden menm jan an ou ta mete valè a nan yon varyab. Se konsa, mwen ta vle chanje non m 'soti nan RJ ak pa gen okenn peryòd R.J. eple la kòrèk fason. Li ta dwe s.name = RJ, menm bagay la tou jan nou te di li orijinal. Lè sa a, ou ka jwenn yo. Se konsa, nou te mete yo. Nou te mete ajou yo. Ou kapab tou jwenn aksè nan yo nan anpil menm jan an. Se konsa, isit la, mwen enprime soti R.J. Nan gen 21 an. Apre sa, mwen ap jwenn aksè nan valè sa yo ak s.name ak s.age. Se konsa, ki nan aksè nan strukt avèk notasyon an dot. Oui, kesyon? ODYANS: Èske gen yon rezon ki fè sou la glise anvan ke ou pa t 'mete elèv nan liy nan tèt, tankou tipedèf konstri elèv yo ak Lè sa a, elèv nan fen a? R.J. Aquino: Se konsa, kesyon an se te, sou glise sa a, nou te tipikman wè tipedèf konstri ne ak Lè sa a, nan jaden an konstri a ak Lè sa a, pawòl ne la. Ak ki jan vin isit la mwen pa t 'di, tipedèf konstri elèv yo ak Lè sa a, nan jaden an konstri a ak Lè sa a, elèv yo? Rezon ki fè la se ke mwen pa bezwen jwenn aksè nan li andedan nan konstri la. Se konsa, yo ke li OKE yo kite li san yo pa yon non. Mwen ka jis kite li kòm yon konstri anonim. Rezon ki fè nou fè l 'pou bay lis lye ak bagay sa yo se paske andedan ou bezwen referans yon etwal nœuds konstri. Se konsa, konstri a te gen yon non, pou ou kapab jwenn aksè nan li pita. Li se yon detay minè. Men, ou pral tipikman wè tipedèf konstri aparèy òtopedik Curly si ou pa bezwen non ak tipedèf konstri kèk Non ki te swiv pa aparèy òtopedik Curly si ou pral bezwen non an. Se konsa, sa a, se yon kesyon bon. Yo, epi sou pwen sa, nou gen tandans modifye strukt epi yo pase alantou strukt pa referans, pa pa vo anyen. Se konsa, nou pral jis pase alantou endikasyon strukt olye pou yo pase alantou an strukt tèt yo. Se konsa, w ap trè souvan pral fè lè l sèvi avèk, nan ka sa a, elèv * oswa konstri ne * oswa ne * olye pou soti elèv yo oswa nœuds. Se konsa, isit la, mwen te di: OK, ptr a varyab a pwal adrès ki nan s. Li pral fè konsèy la bay elèv la R.J. Se konsa, nou ka jwenn nan sa yo jaden menm bagay la tou kòm nou jwenn anyen. Premyèman, ID referans konsèy la yo ka resevwa konstri la. Sa a * ptr ak Lè sa a, yon dot ak Lè sa a laj. Se konsa, jwenn aksè nan jaden an, epi mwen te mete ajou li kounye a a 22, paske, se pou yo di, li te anivèsè nesans mwen. Genyen yon sentaks chemen kout lè l sèvi avèk flèch la isit la. Se konsa, ptr laj flèch se jis menm bagay la tou kòm * ptr.age. Koulye a, sa a, se yon bagay ou pral gen memorize epi sonje. Ou te itilize li yon anpil nan pset6, pset a ortograf. Men, sa a se aktyèlman sa k ap pase sou anba kapo a. Li dereferencing konsèy la ak Lè sa a, aksè nan li. Kesyon? ODYANS: [fèbl]. R.J. Aquino: Se konsa, poukisa yo nou lè l sèvi avèk endikasyon kòm strukt olye pou yo nan strukt tèt yo? Rezon ki fè la ta dwe, si w ap pase yon konstri nan yon fonksyon, pwobableman ou vle pase nan jis 4 a oswa pou bytes ki reprezante konsèy la, kòm yo te opoze ak potansyèlman 30 an oswa 40 bytes ki konstri la. Se konsa, pase yon bagay yo yon fonksyon se pi fasil lè bagay la se pi piti nan kout. Kesyon? ODYANS: Ou ta ka te mansyone sa a depi nan konmansman an, men ki genyen lòt glisad moute sou [fèbl]? R.J. Aquino: glisad sa yo ap apre sesyon-an revizyon. Nou pral afiche yo sou sit entènèt la. Se konsa, k ap deplase sou yo ak sou deplase sou yon ti kras pi vit, nou pral pale sou done estrikti. Gen yon anpil. Nou kouvri yon pakèt moun sou yo. Men sa ou ta dwe konprann sou estrikti done. Ou ta dwe reyèlman konprann nan yon segondè nivo ki sa chak estrikti se. Èske ou ka eksplike nan lang angle ou zanmi ki pa te pran CS50 ki jan nou ap òganize done nou an epi pou kisa nou ta dwe lè l sèvi avèk yon bagay nan fason sa a? Sa a bagay yon sèl. Bagay de, konprann aplikasyon an. Se konsa, konprann ki jan yo sèvi ak bagay sa yo nan C. Epi nou pral ale sou sa a. Lè sa a, bagay twa ta dwe konnen an kouri fwa, epi li limit yo nan la divès kalite estrikti w ap itilize. Se konsa, konprann pou ki sa ou ta sèvi ak yon Hash tab olye pou yo yon etalaj. Konprann kouman vit, an mwayèn, jwenn aksè nan yon tab hash se. Konprann kisa operasyon yo se vit sou lye lis men ralanti sou ranje ak vis vèrsa. Se konsa, ke ou konprann ke, ou pral gen konprann notasyon Big-O jis yo konnen ki jan yo pale sou sa yo kalite bagay sa yo. Apre sa, nou pral pale sou sa. Se konsa, premye bagay, lye lis. Isit la se yon foto wo nivo nan yon lis lye. Nou montre sa a nan klas la. Nou tipikman gen 10 moun kanpe sou sèn nan. Men, nou gen yon seri de nœuds kote chak ne gen kèk valè ak yon konsèy nan valè pwochen li yo. Se konsa, yo ka resevwa soti nan yon ne nan pwochen an, ou jis di, ban m 'ne nan pwochen an. Ou gen ke ne. Ban m 'ne nan pwochen an. Ou gen ke ne. Ban m 'ne nan pwochen yo ak sou sa jouk gen nan pa gen gòch ne. Se konsa, kontinye pale sou li nan yon nivo segondè. Li trè fasil a insert bagay nan yon lis lye. Si ou pa pran swen sou lòd la, ou ka jis lage li dwa nan kòmansman an. Sa a tan konstan. Men, li la difisil jwenn yon valè. Si ou ap eseye mande, se sèt nan lis mwen an? Ou gen yo ale nan chak valè sèl. Èske sa se sèt? Èske sa se sèt? Èske sa se sèt? Èske sa se sèt? Sou yo ak sou ankò. Epi sa a, O (n). Se konsa, lè etidye pou egzamen an, konpare sa a ak ranje. Eske se sa ke OK? Limyè yo ale dim. OK. Lè se yon lis lye pi byen? Lè se yon etalaj pi byen? Se konsa, kite yo gade nan kèk kòd. Isit la se yon ne potansyèl yo. Li se yon konstri. Li te gen yon n Int, ki yo pral valè nou yo. Apre sa, li gen yon ne konstri * kap vini an, ki se konsèy nou yo ne nan pwochen an. Se konsa, isit la, nou ka wè ke nou te pase yo te mete yon Int nan ne nou an. Men, si sa a yo te yon lis lye nan Char zetwal oswa yon lis lye ki te gen cha, nou totalman ta ka fè sa tou. Sonje nan pset6, pwobableman ou te gen yon lis lye nan zetwal Char oswa jis estatik Char ranje. Se pou yo gade isit la nan yon operasyon. Se konsa, nou vle mete yon nouvo n nan lis lye nou an. Nou kòmanse soti ak yon konsèy tèt se sa ki yon konsèy ne sa a ki gen nan valè n ak yon pwochen nan yon konsèy ki pwen ne sa a se yon valè de n ak yon pwochen nan nil, paske li nan dènye ne la. Se konsa, nan enterè a nan tan, mwen vle mete tout kòd la sou ekran an. Epitou, n ap mache nan li yon liy kèk nan yon tan. Se konsa, isit la nan kòd la. Mwen espere ke li nan lizib. Premye bagay nou fè se nou malok yon nouvo ne. Se konsa, li fè yon konsèy nan yon nouvo ne ki pa byen gen anyen mete moute nan li ankò. Nou tcheke a asire w ke ne nan nouvo se pa nil. Sinon, nou gen bay monte. Se konsa, li te gen tcheke sa, nou kounye a mete valè yo nan ne an. Se konsa, nou mete n nan nouvo nan jaden n nou an. Lèfini, nou mete konsèy la pwochen nan lonje dwèt sou tèt orijinal la, se konsa ke nou kapab kounye a yo te antre sa a ne nan lis nou an. Finalman, nou gen pwen an tèt mondyal nan nouvo ne nou an, pou ke si nou yo te kòmanse nan tèt, nou ta dwe nan nivo sa a nouvo premye ne olye pou yo fin vye granmoun premye ne la. Men, lè sa a fonksyon sòti, nan varyab nouvo ne pa gen okenn ankò ki egziste, paske li te lokal yo fonksyon an. Se konsa, sa a se eta a nan mond lan. Tèt mondyal nou an lonje dwèt nan nouvo nou an premye ne, ki pwen nan nou orijinal ne premye, ki pwen ne la apre sa. Sa ki te ensèsyon. Mwen espere ke te genyen relativman dwat yo swiv. Lè w gen dout, desine yon foto. Se konsa, mwen jwenn ke ap pale de bay lis lye ak gade nan Kòd se yon bagay ki pa itil. Lè nou konsidere ke gade nan yon foto yon lye lis pèmèt mwen panse, o, se konsa Mwen gen ne sa a isit la. Men, si mwen mete ke konsèy, li fini moute dekonekte. Apre sa, mwen te bliye kote ne la ale. Apre sa, kòd la sòti. Apre sa, ou gen plizyè nœuds ke yo dekonekte. Epi ou pa fini ak lis la ou vle. Se konsa, si ou trase foto a epi ki fè sa etap pa etap, èspere ke, ou ap wè lòd ki kòrèk la de bagay sa yo an tèm de à pwent yo a asire w ke lis la vini ansanm. Mete se relativman senp. A yon pi konplike ta dwe ensèsyon nan yon lis klase. Yon fonksyon pi konplike se efase epi jwenn, se konsa kap nan yon lis wè si yon bagay ki gen la. Petèt ou te fè sa a nan pset6 lè ou moute nan tab hash ou, epi ou te di, byen, se pawòl Bondye pòm an nan lis lye mwen an? Se konsa, ou ka te deja fè sa a. Men, definitivman, rafrechi memwa ou epi eseye reimplement jwenn ak reimplement efase pou yon lis lye. Fun nòt bò, gen tou doubl-lye lis, ki kote ou gen endikasyon ki pwen tou de pi devan ak bak, pou ke ou te ka ale nan nan ne pwochen ak ne a anvan yo. Se konsa te gen yon kesyon sou ane pase a egzamen nan ki kalite, pale sou doubl-lye lis. Koulye a, sa a, se yon estrikti ke w ap relativman abitye avèk, paske pifò nan pwobableman ou te itilize yo sou pset6. Isit la nan yon sèl sa a, se yon ti jan mwens abitye. Kòm yon nòt bò, mwen panse ke egzamen 1 se prensipalman pi rèd pase egzamen 0, paske bagay la w ap fè, ou pa t 'fè kòm anpil. Pou mete ke yon lòt fason, pou egzamen 0, ou te ekri yon anpil nan C. Epi nou poze w kesyon sou C. Pou egzamen 1, nou pral mande ou sou PHP ak JavaScript, ki ou pa genyen ekri kòm anpil nan. Nou pral mande ou sou C-kòd ki ou pa genyen ekri kòm anpil nan, sa a avanse C bagay. Se konsa, definitivman, pratike nou an bagay te pale osijè de nan konferans ke ou pa t 'nesesèman fè sou pwoblèm nan mete. Pale nan ki, ou pa genyen ekri yon pil sou yon pwoblèm mete. Men, li te nan konferans. Isit la nan foto a wo nivo nan pil ke nou montre chak ane. Li nan chemine a nan plato nan sal la kote moun Mather. Nan yon nivo segondè yo, pil yo se yon dènye nan, premye soti estrikti done. Sa vle di w ap ale yo mete bagay sa yo nan - 1, 3, 7, 12, 14, negatif 0. Bagay la yon sèl mwen pa t 'kapab gen di: - negatif 3, 0. Ou mete tout bagay sa yo pous Apre sa, yon sèl ki sot pase a ou mete nan se premye a yon sèl ki k ap pase vin soti. Se konsa, ou gen de operasyon - pouse e ki pòp. Tout moun nan mete an nan ke mwen te jès tankou sa a yo se pouse. Lè sa a, lè m 'rive jwenn nan gen tan pwan yon bagay oswa atenn sou tèt gen tan pwan yon bagay, sa a, se pòp. Se konsa, nou ap ale nan aplike pil. Lèfini, nou te montre yo nan konferans lè l sèvi avèk ranje. Men, ou ta ka fè yo lè l sèvi avèk lis lye. Yon pil se yon done konseptyèl ekspresyon estrikti, pa renmen yon aplikasyon ki espesifik pou yon sèl. Se konsa, sa ki ta pou sanble? Li ta gade kalite tankou sa a. Ou ta gen yon gwosè nonb antye ki pè. Apre sa, ou ta gen yon etalaj de valè ki nou ap rele plato, paske se sa sa ki foto a se te pou nou - int plato - ak Lè sa a, kèk kapasite maksimòm. Se konsa, sa ki ta pouse gade tankou? Bon, si nou gen yon s chemine, lè sa a pouse yon bagay sou yo, nou ta jwenn gwosè a nan s. Apre sa, ki ta ka pwochen an plas louvri nan etalaj nou an. Se konsa, si nou gen twa bagay sa yo nan chemine nou an, Lè sa a, plato 3 ta dwe pwochen an tach louvri, paske 0, 1, ak 2 yo deja ranpli leve. Se konsa, nou mete valè a nan s.trays [s.size], tèren an twazyèm. Lè sa a, nou enkreman s.size vle di, hey, nou te gen twa bagay anvan. Koulye a, nou gen kat. Se konsa, lè a pwochen ou pouse, w ap pral mete yon bagay nan 4. Oswa lè a pwochen ou pòp, w ap ale fè yon gade nan 3 olye pou yo 4 oswa kèlkeswa sa. Lè sa a, nou pral tounen vre di, hey, nou plas. Sa a te travay. Kòm yon règ nan gwo pous, si yon fonksyon sa a, se sipoze retounen vre oubyen fo toujou retounen vre, ou kapab te fè yon move bagay. Se konsa, fè travay sa a? Oke, li ap travay amann pou 1, ak 2, ak 3, ak 4, ak senk. Men, kite a di mwen rive nan kapasite mwen. Mwen te Lè sa a, kouri antre nan yon pwoblèm, paske si gwosè se menm bagay la kòm kapasite, mwen se kounye a ap eseye mete yon bagay nan yon etalaj kote mwen pa gen espas. Se konsa, yon chèk kout ranje sa a. Si s.size KAPASITE ==, retounen fo. Sinon, y 'al fè sa nou te fè sa. Se konsa, ki lòt bagay nou ta ka mande sou pou pil? Ki lòt bagay ou ta dwe etidye? Ki lòt bagay ou ta dwe pratike? Oke, aplikasyon pòp. Nou deja te fè pouse. Mwen pral ranje sa a. Yon aplikasyon ki pa etalaj, kote ou itilize yon lis lye, petèt. Yon aplikasyon ki pa Int. Nou te fè antye isit la. Men, li te kapab flote. Mwen te kapab yo te strings. Li te kapab zetwal Char. Gade nan ti tès sot pase yo pou kalite kesyon nou te mande sou pil. Mwen pral di ke nou kouvri pil alantou menm bagay la tou kòm nou te kouvri yo an ane ki sot pase. Se konsa, kesyon yo egzamen yo ta dwe gen yon endikasyon ki bon. Vanse menm pi vit, ke moun kap kriye. Yo ap tankou pil. Men, yo ap an premye nan, premye deyò. Si w ap Britanik, keu pawòl Bondye a pwobableman te fè yon anpil nan sans nan ou. Sinon, ou ka gen tande pale de li kòm yon liy. Yo travay tankou liy lan nan magazen an Apple. Premye moun ki te montre moute a 3:00 nan maten an se premye nan moun yo achte iPad l 'yo. Se konsa, nou gen de operasyon - enqueue ak dequeue. Enqueue mete yon moun nan liy lan. Dequeue rale premye a moun nan liy lan. Yon fwa ankò, nou ka aplike sa a ak yon etalaj. Se konsa, sa se nou an konstri te montre nan konferans? Li te yon sèl sa a. Yon fwa ankò, chif yo. Yon fwa ankò, gwosè ak devan bagay sa a nouvo. Poukisa gen yon bagay yo rele devan? Li nan endèks la nan pwochen an eleman dequeue. Se jis nan intern kenbe tras nan nèg la premye yo montre moute, pou nou ka rale li soti lè nou bezwen. Definitivman gade nan nòt konferans epi eseye aplike enqueue ak dequeue lè etidye pou egzamen an. Bagay enpòtan yo reflechi sou. Vlope toutotou si devan an plis la gwosè fini moute pi gwo pase kapasite. Yon fwa ankò, si estrikti ou a se plen, w ap ale nan gen yon pwoblèm. Hash tab ou te wè anvan. Pifò nan pwobableman ou aplike sa yo sou pset6. Li se yon estrikti ki vize pou O (1) ensèsyon tan konstan ak O (1) konstan tan Passage. Nan CS50, nou aplike sa a kòm yon etalaj de lis lye. Eleman kle a nan yon tab hash se fonksyon an hash. Se konsa, li konvèti opinyon-ou, se pou yo di, yon mo diksyonè, nan yon nonb, ki se pral fè endèks nou an. Epitou, n ap sèvi ak sa endèks nan etalaj nou an. Se konsa, isit la se yon bèl ti foto soti nan study.50.net. Nou jete tout mo sa yo nan fonksyon hash nou an. Apre sa, fonksyon an hash di nou ki kote yo mete pawòl sa yo. Sa a se tout gwo nan peyi a kote gen yon sèl pawòl pou chak plas. Men, jan ou sonje soti nan pset6, gen yo gen plis mo pase fant. Se konsa, sa ki pase lè ou jwenn yon kolizyon? Olye pou yo estoke yon sèl valè nan, Se pou nou di, hash tab 3, ou magazen yon lis lye. Se konsa, olye pou yo gen Kantaloup isit la, ou ta gen yon lis lye, kote ne an premye se Kantaloup. Apre sa, ne nan pwochen se chat. Apre sa, twazièm ne a se kolizyon, se pou yo di, paske tout bagay sa yo kòmanse ak C. Se konsa, pifò nan nou te fè sa a pou pset6. Si ou pa t 'fè yon tab hash sou pset6 epi ou te eseye yon bagay tankou yon trye, definitivman revize tab hash. Si ou t 'fè l' sou pset6, definitivman revize tab hash. Men, si ou te fè l 'sou pset6 epi li pa t' travay deyò byen dwat epi ou te gen anpil pwoblèm ak li, definitivman revize tab hash. Se konsa, leson an vrèman se definitivman revize tab hash. Minorite a vas nan ou te eseye soti ap eseye sou pset6. High-nivo foto. Li nan yon bagay tankou sa a, kote chak ne gen yon seri timoun yo, kote chak timoun koresponn ak yon lèt. Ak tout ne di tou: hey, se mwen menm yon mo. Se konsa, nan ka sa a, pawòl Bondye a Maxwell, si w swiv M yo nan yon nan la X-W-E-L-L ak Lè sa a, swiv li yon sèl plis. Epi ou jwenn senbòl sa a, delta, ki nou siyifi vle di sa a se yon mo. Se konsa, Maxwell se yon mo. Delta Sa yo se nan tout siyifye ki bagay sa yo yo mo yo ak ki bagay yo pa. Se konsa, nan pset6, done a nou estoke ansanm ak nenpòt nan nœuds nou an te "Mwen se yon mo. "Epi bagay la fre sou ap eseye se yo demontre ensèsyon ak Passage nan O (longè nan yon mo). Se konsa, jis jwenn nan Maxwell, li nan M-A-X-W-E-L-L. Se konsa, sèt oswa uit - Mwen pa ka konte - etap pou li ale nan fen a epi tcheke bagay sa yo soti. Se konsa, rapid aplikasyon isit la. Rob ale nan yon lye lis nan otopsi l 'yo. Se konsa, tcheke ki soti. M regrèt. Ale nan yon trye nan otopsi l 'yo. Se konsa, tcheke ki soti. Men, ou fondamantalman fè chak ne gen 27 endikasyon nœuds kap vini yo ak yon Boolean pou m 'yon mo. Tcheke otopsi Rob a pou ki jan sa a aktyèlman se aplike. Estrikti final nou an, pye bwa nou an ak pye bwa rechèch binè. Se konsa, gade nan sa yo, sa yo te kouvri pi resamman 8 semèn, Lendi. Yon pye bwa se menm jan ak yon trye, eksepte ou pa nesesèman gen 27 nœuds nan chak pwen. Apre sa, ou pa gen done sa a nan chak etap ki vle si wi ou non - la chemen an pa gen pwoblèm. Lè nou konsidere ke yon trye, chemen an depi anwo jouk anba, Maxwell, te enpòtan yo ban nou. Men, chak ne gen plizyè timoun, petèt. Nou gen kèk vokabilè plis ankò. Rasin lan nan pye bwa a se nan tèt la anpil. Epi nou di ke bottommost nan anpil nœuds ke pa gen okenn timoun yo fèy bwa. Se konsa, tankou yon trye, yon pye bwa se yon estrikti nan nœuds. Yon kalite komen nan pyebwa ki nou pral pale sou se yon pye bwa binè, kote chak ne pa gen okenn timoun oswa yon timoun oswa de timoun. Se konsa, foto sa a isit la se pa yon pye bwa binè, paske ne 3 genyen twa timoun. Men, si nou tout nou te ki inyore sa yo, rès la nan li se yon pye bwa binè paske li demontre pwopriyete a ke chak ne gen zewo, youn, oswa de timoun yo. Se konsa, kouman nou te ka eksprime sa a nan Kòd? Nou te kapab gen yon ne kote chak ne gen yon nonb antye relatif andedan nan li, menm jan tou kòm yon konsèy bò pyebwa ki sou bò gòch la ak yon konsèy bò pyebwa ki sou la dwa, se konsa de timoun yo. Kouman se sa itil? Bon, si nou fè règleman sou ki kote nou mete nœuds, nou ka fè rechèch pi vit. Se konsa, gen nan yon konsèp nan yon rechèch binè pye bwa, kote tout nœuds sou la kite subtree gen yon valè ki pi piti pase ne nan nou ap chèche a. Apre sa, tout nœuds sou subtree nan dwa gen yon valè pi gwo pase ne nan rasin. Koulye a, ki sanble ak yon anpil nan mo yo. Mwen pral mete l 'anndan doub quotes epi montre w yon foto. Se konsa, isit la se yon egzanp yon pye bwa rechèch binè. Wè ke nou kòmanse ak 10. Tout bagay sa yo bò goch la nan 10 se pi piti pase li. Apre sa, tout bagay sa yo dwa pou se pi gran pase li. Men, plis konsa pase sa, chak ne nan pye bwa a eksprime pwopriyete sa a. Se konsa, ne a 7 gen yon 3 a nan kite ak yon 9 a dwat la. Se konsa, tout moun ki gen pi piti pase 10. Men, gade nan jis sa yo, 7 an gen 3 sou bò goch li yo ak 9 a dwat li yo. Apre sa, Menm jan an tou sou bò dwat la, 15 gen 14 sou bò goch li yo ak 50 a dwat li yo. Se konsa, twa nœuds yo la a, 15, 14, ak 50, yo tou se yon binè pyebwa ki valab oswa yon pye bwa rechèch binè ki valid. Apre sa, yo ap tout pi gran pase 10. Se konsa, yo gen dwa fè sou bò dwat la a. Èske gen yon kesyon? ODYANS: Ki jan ou fè fas lè ou gen de sèt fwa? R.J. Aquino: Yeah. Ki jan ou fè fas avèk de valè ki se menm bagay la? Gen kèk pye bwa rechèch binè di ke ou inyore Doublon, paske objektif la se jis vle di, mwen te wè bagay sa yo twò lwen. Gen kèk pye bwa rechèch binè ou kapab di gen yon konte andedan nan ne an. Gen lòt ki ta ka di ke tout bagay sa yo bò gòch la se mwens pase oswa egal a. Apre sa, tout bagay sa yo dwa pou gen plis pouvwa pase. Li jis depann de sa ki nan pwoblèm se w ap rezoud. Se konsa, nan yon diksyonè, pou egzanp, ou pa t 'vle pran swen sou Doublon. Ou ta voye jete yo deyò. Men, gen kèk lòt pwoblèm ou ta ka pran swen. ODYANS: Eske li posib poum gen yon 1 nan kite nan 15, ki se mwens pase 10? R.J. Aquino: No Si 14 a isit la te yon 1, sa a ta Ou pa bezwen yon pye bwa rechèch binè ki valab, paske tout bagay sa yo dwa pou yo 10 gen yo dwe pi gwo pase l '. Apre sa, nou pral wè pou ki rezon. Si nan peyi a nan rechèch objektif mwen an se jwenn 14, mwen kòmanse nan rasin lan. Se konsa, mwen gade. OK. Nou pral kòmanse nan rasin lan. Gade nan 10. Oke, 14, sib nou an, se pi gran pase 10. Se konsa, li dwe sou bò dwat la. Sa a se trè menm jan ak telefòn la tout antye bagay liv nou te fè sa, binè la rechèch la. Men, olye pou yo chache binè nan yon etalaj, nou binè chache nan pyebwa sa a. Se konsa, nou toujou ap chèche pou 14. Oke, 14 se pi piti pase 15. Se konsa, si li la nan pye bwa nou an, li dwe gen nan zòn sa a isit la. Li dwe sou bò dwat la nan 10 ak nan kite nan 15. Se konsa, nou tcheke ne sa a. Apre sa, ye, nou te jwenn 14. Mwen pa pwal nan mache atravè li. Men, isit la Kòd la. Li nan aktyèlman relativman senp, paske sa se repetitif. Kisa nou ka mande ou fè sou yon egzamen? Nou te kapab mande w yo ekri kòd sa a. Nou te kapab mande ou fè yon gade nan Kòd sa a epi modifye Kòd sa a, epi eksplike kisa li nan fè. Yeah. Kesyon? ODYANS: Èske glisad sa yo pral fè disponib jan yo te dènye fwa? R.J. Aquino: Wi. Se konsa, glisad sa yo pral definitivman ap afiche. ODYANS: Yo ap aktyèlman ki afiche kounye a sou sit entènèt la. David jis fè sa. R.J. Aquino: glisad yo se kounye a sou sit entènèt la. Mwen ap pwobableman plak moute yon koup la tipo yo, mwen te note ak ranje yo. Men, gen yon aktyèl vèsyon sou sit la. Gen lòt ki bagay nou ta ka mande ou fè - ekri insert. Ekri yon vèsyon repete nan la fonksyon repetitif nou jis te montre ou oubyen pale de bagay sa yo, tankou nan paragraf, nan mo, nan fraz. Konparezon fwa yo kouri ak eksplike ki sa ou ta vle sèvi ak yon binè pye bwa rechèch pou olye de yon Hash tab, pou egzanp. Se konsa, konprann sa yo estrikti nan yon nivo trè gwo twou san fon. Konprann ki jan yo ekri yo, ki jan yo sèvi ak yo, ki jan yo pale de yo. Epi ou pral tout mete. Kesyon? ODYANS: Lè w ap ekri a pye bwa rechèch binè, ki jan ou fè detèmine kisa ki valè nan fè li kòm rasin lan? R.J. Aquino: Se konsa, kesyon an se te, ki sa ki valè ou fè kòm rasin lan? Tou depan de kòd ou a, ou ka gen yon rasin mondyal la. Se konsa, ou ka gen chans te gen nan pset6 yon hash tab mondyal la. Oswa ou ta ka pase rasin lan nan kòm yon diskisyon. Se konsa, fonksyon rechèch sa a isit la pran yon agiman yon ne *. Se konsa, tou sa ne ou rive yo dwe gade nan se youn nan w ap trete kòm rasin ou lè ou pase l pous Ak mwen se tout ansanm. Sa yo se glisad m 'yo. Moun nan pwochen ka vin swap nan yon konpitè pòtatif ak MIC. ROB BOWDEN: Mwen panse mwen ta ka gen entèprete ke kesyon yon lòt jan. Men, mwen entèprete li kòm, si ou gen chif yo 1, 2, ak 3, ki jan fè nou konnen yo fè 2 rasin lan kòm opoze a 1 oswa 3? Si nou fè 2 rasin lan, lè sa a li nan joliman 1 ak 3 sou bò goch la ak dwa. Men, si 1 se rasin lan, lè sa a li nan 1 a la tèt, 2 bò dwat la, 3 a dwat la. Se konsa, pa default, ou pa konnen sa ki fè rasin lan. Apre sa, pou nenpòt ki algorithm nou ap panse ou pral pral ba ou, jis premye bagay ou insert ta dwe rasin lan. Oswa nou ta ba ou yon pye bwa binè ki deja egziste ki gen yon rasin. Men, lòt algoritm ki egziste sa yo ki rasin lan ap chanje, se konsa ke si ou fini nan sitiyasyon an kote li nan 1, 2, 3, li ta otomatikman aktyalizasyon fè 2 rasin nan nouvo, se konsa ke li la toujou joliman balanse. ANGELA LI: Cool. Hey, mesye. Mwen se Angela. Apre sa, mwen pral fini nan C nou ak Lè sa a, ale nan kèk nan entènèt nou an teknoloji - HTTP, HTML, ak CSS. Se konsa, premye bagay la se tanpon debòde atak. Se konsa, kite a pran yon gade nan Kòd sa a. Li trè senp. Genyen yon foo fonksyon. E li pa retounen anyen. Men, li pran nan yon konsèy nan yon fisèl rele ba. Apre sa, li pral deklare sa a tanpon, ki se yon karaktè etalaj ki gen 12 fant. Apre sa, li itilize manki, ki se jis yon fonksyon ki kopi soti nan yon adrès nan yon lòt. Se konsa, sa a se ap eseye kopi nan tanpon nou yo soti nan tou sa bar ap montre yo. Se konsa, okenn lide sa ki nan mal avèk kòd sa a? ODYANS: Si bar ki dire pi lontan pase C yo, yo pral recouvrir. ANGELA LI: Yeah, egzakteman. Nou pa gen okenn garanti ke ba ki pral li dwe mwens pase 12. Nou jis te fè kèk nimewo abitrè 12. Apre sa, nou tout nou te tankou, se pou yo espere ke D 'itilizatè nou an, se mwens pase 12 karaktè nan longè. Se konsa, nan yon mond ideyal, si opinyon nou an, se toujou jan yo espere a, lè sa a nou pral jwenn yon bagay tankou, hello. Sa a mwens pase 12 karaktè. Li vin li nan Char c. Lè sa a, nou fè yon bagay ak li. Li pa reyèlman gen pwoblèm. Men, yon moun move ta ka fè yon bagay ki pi tankou sa a, kote yo ban nou tou sa ba ap montre a, li nan ale nan pwen nan etalaj sa a gwo nan jis yon a. Apre sa, sa se yon fason pi long pase 12. Se konsa, li ale nan ale tout wout la desann isit la nan kote retounen nan adrès itilize yo dwe. Se konsa, kite a di fonksyon sa a Yo rele foo. Petèt foo te aple pa kèk lòt fonksyon, ki te aple pa prensipal la. Se konsa, lè foo ap kouri, li bezwen konnen ki kote pou li retounen nan. Si foo te aple pa kèk fonksyon yo te rele Baz, li gen konnen ke li la te rive nan tounen nan Baz. Epi sa a, sa ki adrès sa a retounen desann isit la ap di nou. Men, si nou recouvrir l 'ak kèk lòt adrès, nan ka sa a, sa a se yon reprezantasyon nan adrès la nan la trè kòmanse nan zòn de defans sa a, Lè sa a, sa ki aktyèlman pral rive se ke olye pou yo retounen tounen nan Baz, ki rele fonksyon nou an, li nan jis ale pou yo ale nan devan nan Kòd sa a. Men, si sa a te gen paske yon move dud HACKER vini, li sou fòm piki sa a, Lè sa a, petèt kantite lajan sa a nan Yon a se pa aktyèlman yon nan. Apre sa, li la aktyèlman jis kòd ki kraze òdinatè w lan oswa yon bagay. Se konsa, yo dwe defans sou sa a sòt de bagay, ou gen pa janm sipoze ke D 'itilizatè a se yon sèten kantite lajan pou karaktè. Pou egzanp, lè ou te fè ortograf, ou te di yo ke mo yo te sèlman pral fè 40 karaktè tan maksimòm. Apre sa, ki te bon. Men, si se pa sa, Lè sa a, ou ta gen Asire w ke w sèlman li nan 45 karaktè nan yon tan. Sinon, ou ta ka recouvrir tanpon ou. Nenpòt kesyon sou sa. Yeah. ODYANS: Èske ou ta kapab jis pale yon ti kras plis sou sa yo? ANGELA LI: M regrèt. Wi. ODYANS: MIC la se jis pou videyo. Mwen pral eseye ak pwojè. Hi, guys. Sipòte? Se konsa, n 'al pran yon bagay kèk nan la Bibliyotèk CS50, ki ou ve yo te lè l sèvi avèk tout semès, sitou yo ka resevwa opinyon itilizatè. Kòm ou konnen, ou gen ladan yo CS50 nan bibliyotèk pa jis ap fè CS50.h, ki gen tout prototip yo nan la fonksyon ke ou ka itilize, tankou GetString ak GetInt, ak GetFloat, et setra. Apre sa, nan liy sa a youn nan CS50 nan bibliyotèk ki defini yon kòd, ki ou nèg tout konnen pa kounye a se jis yon Char *. Men, kite a pran yon gade vit nan ki jan GetString travay. Sa a se yon vèsyon trè abreje. Ou ka rale moute dosye yo nan bibliyotèk CS50 soti nan, mwen panse, manuals.CS50.net. Epi ou ka li nan fonksyon an vrè. Men, sa a kouvri kèk nan pati pyès sa yo enpòtan. Se konsa, nou te kreye kèk zòn de defans ak kèk kapasite. Ak sa ki nou fè se nou jwenn youn N. nan yon moman soti nan estanda n. Sa a kote entrain yo itilizatè tèks nan konsole a. Se konsa, nou pral li nan yon N. toutotan li pa yon nouvo liy ak li pa nan fen nan dosye, ki se nan fen D 'estanda. Apre sa, pou chak karaktè ki nou li nan, si sa karaktè fini moute ajoute ak kantite karaktè nou te li nan ak ki pi plis pase kapasite nou yo, Lè sa a, sa nou fè se nou jis rdimansyonman nou tanpon se konsa ke li la de fwa osi lontan. Se konsa, ankò, sa a pwoteje tèt ou kont tanpon atak debòde, paske ou li nan yon karaktè nan yon tan. Men, si nan nenpòt ki pwen ou li nan twò anpil, ou jis elaji zòn de defans ou. Ou anpil anpil pitit li pa de. Lè sa a, ou gen plis chanm. Sinon, ou jis ajoute yon karaktè pezib. Apre sa, apre ou te li nan nan tout karaktè, li pral retresi tanpon la tounen desann nan gwosè a nòmal, ajoute yon nil Terminator, ak Lè sa a, retounen. Koulye a, se pou yo gade nan GetInt. Èske ou ka mesye li sa a? Mwen ka rale nan yon ti jan. Mwen pa konnen ki jan òdinatè travay. Pa janm tèt ou. Mwen pa ka rale nan byen. Sa a se vrèman difisil. Mwen regrèt. Se pou yo jis gade nan sa a. Se konsa, sa GetInt fè se li premye li nan yon fisèl soti nan GetString, ki nou te aplike anvan. Ak pati nan enpòtan sonje isit la se si pataje sa a ke li fini moute lekti, se tankou pa aktyèlman yon fil, Lè sa a, nou jis retounen INT_MAX reprezante echèk. Poukisa nou tounen INT_MAX olye pou nan negatif 1 oswa 1? Nenpòt ki ide? ODYANS: [fèbl] negatif 1 sou yon sèl. ANGELA LI: Yeah, egzakteman. Se konsa, w ap fason plis chans jis vle D '1 oswa negatif 1 lè pouse pou yon nyèm ak tou sa nyèm maxes. Li nan gwo. Ou ap pwobableman pa ale nan sèvi ak li. Se konsa, sa a se tankou yon desizyon konsepsyon asire w ke ou pa fè aksidan retounen yon erè oswa ou pa retounen 1, ki ta ka parcouru kòm yon repons ki kòrèk. Se konsa, si yon liy pa egziste, nou retounen INT-MAX. Sinon, nou itilize sskanf, ki se tankou skanf. Men, li li soti nan yon kòd. Epi nou gen sa a formate fisèl, ki se% mwen% c. Apre sa, nou eseye ak matche ak ke ak tou sa itilizatè a te ban nou. Nou vle ki kantite matche bagay yo dwe 1, ki vle di ke nou sèlman reyèlman vle matche ak yon nonb antye relatif ki te antoure pa petèt blan espas, petèt pa. Nan ka sa a, si ou mete nan yon bagay tankou ba, ba pa matche ak nan tout, paske se la bezwen yo dwe yon nonb antye relatif nan kòmansman an. Se konsa, pa janm sscan vire 0. Se konsa, ou pa retounen sa a. Yon lòt kote, si ou mete nan yon bagay tankou 1, 2, 3, A, B, C, ki alimèt tou de nonb antye ki pè a, men tou karaktè a apre li fin. Se konsa, sskanf ap retounen 2, ki se tou pa ideyal. Ou pa vle 1, 2, 3, A, B, C rive gen yon Int ki valid. Se konsa, ki tou pa travay. Men, di ou mete nan yon bagay tankou 50. Sa a ap matche ak% nan mwen, ki vle di li pral jwenn li nan n. Epi, koulye a, n ap gen ladan nimewo a 50. Lè sa a, ou ka retounen li. Sinon, ou frape rekoumanse. Lè sa a, li jis ale lòt peyi sou ankò jouk ou jwenn yon D 'bon ki soti nan itilizatè a. Nenpòt kesyon sou sa? ODYANS: Se konsa, si ou te ekri ak lèt ​​detache soti valè a nan GetInt a sou [fèbl] Li ta ka jis nonb antye ki pè a ak max? ANGELA LI: Yeah. Se konsa, si ou itilize GetInt, ou ta dwe asime ke ou pa vle nyèm max gen yon opinyon ki valab, paske w ap ale ou panse ke sa ki te move. ODYANS: Si nou pa t 'gen Char C ak yon moun mete nan 1, 2, 3, Sam, ta li toujou travay pou 1, 2, 3? ANGELA LI: Mwen panse ke li ta travay. Men, ou pa vle 123Sam gen yon opinyon ki valab pa yon itilizatè. Sa a pa reyèlman yon Int. Se konsa, li pa sanble ki jis analizan li kòm yon Int. OK. Nan ka sa a, se pou deplase nan sou entènèt la. Se konsa, HTTP se pa yon lang. HTTP se jis yon seri estanda pou ki jan ou voye bagay sa yo soti nan kliyan, sa a, se ou, nan serveurs. Sa a lòt moun sou entènèt la. Se konsa, HTTP kanpe pou ipèrtèks Transfere Pwotokòl. Li nan kè ak nanm nan sit entènèt a tout antye. Pati nan ipèrtèks jis refere a HTML. Transfere a se kliyan tankou ou pral voye demann moun fè serveurs, ki bay repons. Apre sa, pwotokòl la se jis, ki jan fè ou espere yon sèvè konpòte yo? Ak ki jan ou ta sipoze konpòte sa yo ke ou ka rasyonalize sa a pwosesis kominikasyon yo ye? Se konsa, demann HTTP gade yon anpil tankou sa a. Jwenn se ki kalite demann. Ou mesye te wè demann jwenn ak demann POST. Sa dezyèm bagay la, / m ', sa a, se jis URI a oswa URL la nan kote ou vle ale nan lame a. Se konsa, demann sa a ap mande pou la paj, tankou www.facebook.com / m '. Lè li nan yon demann jwenn. Lè sa a, HTTP/1.1 sa a, sa se sèlman vèsyon an nan HTTP w ap itilize. Li nan prèske toujou 1.1. Lè sa a, gen nan yon pakèt nan lòt bagay tou. Ou ka aktyèlman wè sa yo si ou louvri moute konsole ou lè w ap Navigasyon entènèt la. Repons gade yon bagay plis tankou sa a. Pati nan tèt se, ankò, nan di ki kalite HTTP w ap itilize ki te swiv pa yon kòd estati. Se konsa, 200 OK se tout bagay travay deyò. Isit la se kontni ou. Kontni ou a pral nan swiv. Lè sa a, li pral di w ki kalite sou kontni ak lòt bagay tou. Kòd sa yo sitiyasyon, gen yon kèk moun enpòtan ke ou ta dwe konnen. 200 OK, se tankou lò tout bagay la. Tout travay. 403 entèdi. Sa a ou te pwobableman wè si w bliye chmod yon bagay byen. Sa vle di ke ou pa gen autorisations yo dwa jwenn aksè nan ki sou sèvè a. Se tankou, pa gen, ou ka pa wè li. 404 vle di ke bagay pa egziste. Pa jwenn. Ou te pwobableman wè sa anpil. 500 Entèn sèvè Erè a se nòmalman tankou yon bagay ale mal sou bò nan sèvè a. Se konsa, lè ou te mete ann aplikasyon pset7, si ou te gen PHP erè, ou te kapab aktyèlman ale nan paj la ak wè yon pakèt tout PHP erè bagay. Men, ki pa nòmalman rive, paske sou sit entènèt pa reyèlman vle di nou poukisa se sit yo kase. Yo pral pwobableman jis retounen yon 500 Entèn sèvè Erè. Lè sa a, gen nan 418 mwen se yon teyèr. Genyen yon istwa tout sou poukisa sa a, se yon bagay. Men, ou ka li sou sa sou tan pwòp ou yo. Genyen yon pakèt tout kòd sitiyasyon lòt tou. Men, sa yo se yo menm ki ou ta dwe konnen. Se konsa, kite a pale sou HTML. HTML, sonje, se pa yon lang programmation. Li se yon lang markeup. Sa vle di li dekri kontni. Li fè w konnen kisa yon dokiman HTML sanble tankou oswa ou pa sa li sanble Men, ki jan li estriktire. Se konsa, li defini yon estrikti ak Semantics nan paj wèb. Se tankou, sa a se yon paragraf. Sa a se yon lis bay lòd la. Sa a se tankou yon seksyon nan paj m 'yo. Isit la nan tit la. Li fè bagay tankou sa. Li pa style nenpòt nan sa, paske sa a, se sa ou fè nan CSS. Apre sa, li sanble yon seri nan pare solèy Tags. Se konsa, yo sèvi ak yon egzanp yon vrèman debaz Paj HTML, ou gen doktip a deklarasyon 'kanpe. Sa a deklarasyon doktip se li di yo: n ap lè l sèvi avèk HTML5. Lè sa a, ou gen etikèt la HTML gwo. Li gen yon tèt li ak yon kò. Anndan tèt la, ou gen tit la. Sa a ki sa ale nan tit la ba nan navigatè ou a. Nou gen yon tag lyen ki lyen nan yon fèy style ekstèn. Lè sa a, nou gen yon script ki rale soti nan yon JavaScript ekstèn kòm byen. Lè sa a, andedan kò nou an, se aktyèlman sa ki vin montre sou paj la. Nou te gen yon paragraf epi yo Lè sa a, yon imaj andedan ke paragraf. Sa a se yon sèl yon foto nan ti chat. Remake imaj la tag fèmen tèt li. Se konsa, olye nan ouvèti ak yon imaj ak Lè sa a, fè yon lòt / imaj, ou jis gen koupe sa a ti kras isit la, ki fèmen li. Apre sa, tag nan imaj tou te gen kle sa a valè atribi rele alt. Sa a tèks la altènatif ki k ap pase lè ou hover sou li. Pifò eleman HTML gen kèk valè kle bagay sa yo ke ou ka bay li, divès kalite pèrsonalizasyon. Yeah. ODYANS: [fèbl]. ANGELA LI: Bon, se konsa li nan yon atribi nan tag la. Se konsa, si ou te lè l sèvi avèk jQuery, ou kapab fè chwazi image.getAttribute. Lè sa a, ou kapab fè rechèch pou jwenn atribi nan alt. Apre sa, li pral ba ou ti chat. Si ou sonje fòm ki nan HTML, opinyon eleman yo ap gen atribi Non. Epi sa a, sa ki PHP sèvi ak yo voye demann lè se soumèt yon fòm. ODYANS: Èske ou te mansyone yon bagay sou ki jan si ou itilize kittens.jpg oswa yon bagay ki gen manke a pote dosye oswa lòt dosye? ANGELA LI: Wi. Se konsa, sa a se sa yo rele yon manm fanmi chemen, paske mwen pa bay ou chemen an plen. Sa a se tankou lè nan C si ou fè fopen kèk dosye, si ou fopen hi.txt, ki hi.txt te espere yo dwe nan menm bagay la tou anyè, sof si ou ba li yon pi plis konplèks chemen. ODYANS: Se konsa, ou ta ka presize ki katab [fèbl]? ANGELA LI: Yeah. Epi ou ka gade ki jan fè sa. Men, si mwen te vle jwenn kittens.jpg soti nan anyè a paran, mwen ta fè .. / Kittens.jpg. Yeah. M regrèt. Yeah. Oh nonm, mwen bliye kesyon an. Ki sa ki te kesyon an? Oh, kesyon an te se, kittens.jpg atann yo aske nan anyè a menm? Apre sa, nan ka sa a, li se. Men, ou ka tou ba li yon chemen sèten tankou ke li pa dwe fè. Sa ki bon? CSS. Se konsa, CSS, tankou HTML, se pa yon lang programmation. CSS se jis yon seri de règ manier. Li vle di pou cascading Style Dra. Apre sa, ou sèvi ak li nan konjonksyon ak HTML nan paj style. Se konsa, gen twa fason ou ka gen ladan li. Youn nan fason ou ka fè li se nan tèt la pòsyon nan HTML ou, ou ka jis louvri yon tag style ak Lè sa a, bwa kèk CSS règ nan la. Li trè OK. Yeah. ODYANS: Èske ou ta kapab mete moun ki Tags style nan ant, se pou yo di, kò ak / kò. Lè sa a, ou ta dwe manier sèlman nan kò a. ANGELA LI: Ou te kapab. Li pral travay. Men, ou pa ta dwe, paske manier se kalite Metadata a ki ta dwe ale nan tèt la nan dokiman ou yo. Kò ta dwe reyèlman sèlman gen sa ki aktyèlman ale nan montre moute sou paj ou yo. ODYANS: Se konsa, ou ta mete style nan tèt ou a style a paj entènèt tout, dwa? ANGELA LI: Yeah. Se konsa, mete style isit la, règleman sa yo CSS pral aplike nan paj la tout antye ki baze sou seleksyon yo. Se konsa, wout la pi bon fè li se olye pou ki gen yon tag style nan tèt ou, ou gen lyen sa a nan yon style ekstèn fèy tankou mwen te montre ou nan la anvan yo egzanp. Ki sa sa fè se li eseye epi li jwenn nan pote style.css ak Lè sa a, rale li nan epi li sèvi ak sa kòm la diferan estil pou paj la. Apre sa, style.css ou ta jis gade tankou sa a. Li ta jis pou yon pakèt moun sou CSS. E finalman, gen nan yon lòt fason ou ka gen ladan CSS, ki ou reyèlman pa ta dwe janm fè. Li nan rele manier aliye. Se konsa, nenpòt eleman HTML kapab tou pran yon atribi style. Lè sa a, nan ki atribi style, ou ka ba ou li règ CSS. Se konsa, nan ka sa a, tou sa div mwen se defini dwa isit la, li nan ale nan gen yon background nwa ak yon tèks koulè blan. Men, ou pa ta dwe fè sa, paske sa sa a se li mete manier ou andedan HTML ou yo. Apre sa, mwen konnen nou ve yo te ap pale de HTML se estrikti ak CSS se style. Si ou fè sa, li melanje yo ansanm. Epi li pa trè pwòp. Se konsa, pa fè sa. Lè l sèvi avèk yon egzanp nan CSS, kanpe, nou jis chwazi kò a nan HTML a dokimantè. Apre sa, nou ap tankou, tout bagay a pral fè komik Sans. Mwen tou pa rekòmande pou. Men, ou ta ka fè sa. Règ la dezyèm dwa isit la, li pral yo ka chwazi eleman ki sou la paj ki gen prensipal ID. Se konsa, tou sa HTML eleman, m 'te di ID = Prensipal yo, mwen pral ba ke yon Marge 20-pixel ak fè aliman tout bagay, tout tèks la, nan sant la. Bagay la pase chwazi pa yon klas CSS. Se konsa, nenpòt eleman nan paj mwen te bay yon klas seksyon, mwen pral fè li yon koulè background nan limyè ble. Oui. Sa a tout mwen te resevwa. Kesyon? ODYANS: Ki sa hashtag a anvan prensipal fè? ANGELA LI: Kesyon an se, ki sa ki fè hashtag a anvan Se pou nou fè prensipal yo? Nan ka sa a, hash la nan CSS vle di chwazi pa ID. Se konsa, si mwen te gen kèk eleman HTML, tankou divID = prensipal yo, CSS sa a chwazi règ bagay la ak prensipal ID. Apre sa, Menm jan an tou, peryòd la nan devan seksyon se chwazi pa yon klas CSS oswa chwazi pa yon klas HTML. ODYANS: Poukisa gen yon gen anvan 6 nan koulè background? ANGELA LI: Yeah. Se konsa, kesyon an ki, poukisa ki gen la yon hash anvan 6 an? Sa a se diferan pase sa ki hash. Sa vle di ke w ap bay yon koulè ekzadesimal. Koulè Se konsa, Egzagòn, sa a jis reprezante yon koulè. Apre sa, ou sonje Rgb tripl lè ou te fè pset nan forensics? Sa a se menm jan an. De premye chif yo reprezante konbyen wouj se nan koulè an. Dezyèm de la reprezante konbyen vèt. Apre sa, twazièm a reprezante konbyen ble. Apre sa, hash a se sa a ki pral ki reprezante yon koulè. Se konsa, anyen nan men 0, 0, 0, 0, 0, 0 jiska F, F, F, F, F, F se ki valid. Li nan kèk koulè ki valab ki ka ap parèt pa navigatè ou a. Kesyon? ODYANS: Ki sa ki nan diferans ki genyen ant lè l sèvi avèk pa ID ak pa klas la? ANGELA LI: Kesyon an se sa ki nan diferans ki genyen ant lè l sèvi avèk pa ID ak klas? Ou kapab sèlman gen yon sèl eleman nan yon Dokiman HTML ki gen yon ID bay yo. Se konsa, yon sèl bagay sou paj mwen an ki pèmèt yo gen prensipal ID. Se konsa, ou sèvi ak li pou sa a se header la. Sa a se navigasyon la. Sa a se footer la. Klas yo diferan, paske ou kapab aplike klas nan eleman HTML kòm anpil jan ou vle. Se konsa, pou egzanp, mwen te fè seksyon klas yo, paske se la la pwobableman plis pase yon sèl seksyon nan paj m 'yo. W ap sèlman pèmèt yo gen kòm anpil eleman nan paj la ak menm bagay la tou klas men se sèlman youn ki gen yon ID sèten. ODYANS: Se konsa, dot a reprezante klas la? ANGELA LI: Yeah. Yon dot reprezante yon klas la. Fre. Sa a tout mwen te gen, guys. Mèsi poutèt ou. [Aplodisman] ZAMYLA Chan: Hi, tout moun. Mwen se Zamyla. Mwen pral yo dwe kouvri PHP, Mv, ak SQL jodi a. Yon anpil nan materyèl la ke mwen pral kouvri a pwal bèl anpil dwa soti nan pset7. Tout dwa. Se konsa, sa se PHP? PHP kanpe pou PHP ipèrtèks Preproseseur. Se konsa, li, nan tèt li, se yon repetitif non, ki se trè fre. PHP se yon sèvè-bò lang scripting, epi li bay entèfas la ak fondman yo ki lojik nan sit entènèt nou an. Se konsa, Angela te pale anpil sou HTML nan ak CSS ki pral fè estrikti a nan sit wèb la. Men, sa ki si ou vle chanje sa kontni dynamique oswa si li varye ki baze sou itilizatè a oswa sèten kondisyon? Sa a kote PHP vini pous Koulye a, tipikman, PHP ta ka pran yon kèk mwens liy aplike menm bagay la nan C. Se paske PHP manch memwa jesyon pou pwogramè a, kòm opoze a nou gen malok gratis, bagay sa yo tankou sa a. Men, depi PHP se yon entèpretasyon lang, anjeneral, li ta ka egzekite yon ti jan pi dousman pase C, ki se yon lang konpile. Paske nou ap deplase pwogram lang, se pou yo gade nan ki jan la sentaks ap diferan. Se pou yo dwe pran anpil prekosyon pa jwenn konfonn ak sa-a. Se konsa, avèk PHP sentaks, si ou se selaj PHP ou anndan nan yon HTML ranpli oswa nan yon dosye php. tèt li, ou bezwen fèmen kòd la nan ouvè a PHP ak etikèt yo PHP fèmen tankou sa a, tankou sou ekran an. Varyab nan PHP. Chak varyab yon sèl ap kòmanse ak siyen an $ ki te swiv pa non an nan varyab ou. Koulye a, varyab nan PHP yo blesi tape, ki vle di ke ou pa bezwen ki endike ki kalite done a se lè w ap deklare li. Sepandan, sa pa vle di yo ke yo pa gen okenn kalite nan tout. Se konsa, Si mwen deklare yon varyab ak jis mete li egal a 1, ak Lè sa a, Mwen deklare yon lòt varyab, mete l 'egal ak "1," ak Lè sa a, yon lòt 1.0, byen, ki depann sou kalite a nan egalite Operatè mwen sèvi ak, si mwen vle konpare atravè tout kalite, Lè sa a, yo pral egal-ego. Men, si mwen vle asire w ke nan kalite yo egal, PHP ka toujou fè sa a, menm si nou pa endike ki kalite li se lè nou premye fè dosye a. Koulye a, nan PHP, menm si nou se oblije chanje sou nan pwogram lang ki soti nan C, nou toujou gen nou konfyans si kondisyon, jis tankou sa a. Nou toujou gen pasan pandan y ap nou an, jis tankou sa a, kote ou te mete nan ou kondisyon ak Lè sa a, nan kò nan bouk la. Lè sa a, nou gen tou nou pou nou ka bouk, ki tipikman sanble sa a. Se konsa, si mwen te vle repňte sou tout nèf psets epi soumèt ak rele yon submitPset fonksyon, Lè sa a, mwen ka fè sa isit la, kote ou nèg gen tout fè pa pwen sa a. Konpliman, nan chemen an. Pou kamera a, moun ki te di, di ou mèsi. Koulye a, si nou pa t 'vle jis itilize sa a pou bouk, lè sa a PHP aktyèlman tou te bagay sa yo rele pasan fortch. Se konsa, si mwen te gen yon etalaj de nonb antye relatif, 0 jiska klas 8yèm, ki estoke nan psets yo etalaj, Lè sa a, mwen te kapab gen yon bouk fortch ki iterates sou tout nimewo nan psets. Lè sa a, mwen te kapab rele menm bagay la tou fonksyone uit fwa, jis tankou m 'te fè anvan an. Se konsa, sa a pou chak bouk se bèl, paske ou pa bezwen si ou pa konnen longè a egzak nan etalaj la ke ou yo te, lè sa a lè l sèvi avèk sa a bouk fortch pral pran swen nan ke pou ou. Se konsa, mwen te fè psets kòm yon etalaj. Se pou yo gade nan sa. Ranje nan PHP yo, se tipikman menm bagay la tou kòm sa yo ki nou te gen nan C, kote ou ka deklare yon etalaj. Ak isit la, mwen ka deklare yon etalaj vid ak Lè sa a, bati dynamique lè l sèvi avèk endis kòm nonb antye relatif. Se konsa, endèks 0, mwen pral nan magazen yon nonb antye yo te rele 1. Nan endèks 1 nan lis mwen an, mwen pral nan magazen valè a 2. Lè sa a endèks la twazyèm men nan dezyèm nonb, mwen pral magazen nimewo a 12. Koulye a, sa a se amann nan ki travay li travay byen. Men, di li zafè m ' ki sa chak endèks kenbe. Pou m ', endèks 0 vle di ki jan anpil chat m 'genyen. Ak endèks la 1 vle di ki jan anpil chwèt m 'genyen. Apre sa, youn nan pwochen vle di konbyen chen. Oke, lè sa a li ou presize ki, olye pou ki gen sonje 0 gen rapò ak chat, ak 1 a chwèt, mwen ka sèvi ak ranje asosyatif, ki vle di ke olye pou yo nonb antye relatif kòm endis m 'yo, Mwen ka aktyèlman sèvi ak strings. Se konsa, sa a se byen itil. Apre sa, ou te fondamantalman jis ranplase nonb antye relatif yo ak strings. Apre sa, ou gen yon asosyatif etalaj. Yeah. ODYANS: Èske gen yon rezon ki fè gen nan yon souliye pou dezyèm lan pati, paske lis mwen an gen etalaj la. ZAMYLA Chan: Kesyon an te, se gen yon rezon ki fè gen nan yon souliye ant yo menm ak lis mwen an? No Se jis ki jan m ap nonmen varyab m 'yo. ODYANS: Nan premye a liy, li nan yon mo. ZAMYLA Chan: ekskiz mwen. Mwen pral ranje sa a. Yeah. Yo ta dwe non an menm varyab. Bon trape. OK. Se konsa, kite a deplase sou fisèl seri. Si mwen te vle pran de kòd, Lè sa a, mwen ka anchene yo ak operatè a dot. Se konsa, si mwen gen Milo kòm yon non premye ak Bannann kòm yon Non sot pase yo, Lè sa a, konkatenan ak operatè a dot ak Lè sa a, mete yon espas nan ant pral fè yon kòd ki gen Milo Bannann, ki mwen ka Lè sa a, repete oswa, Olye de sa, enprime soti. Pale de eko, se pou yo pale sou yon kèk itil - Wouch. Mwen regrèt. Yon kèk fonksyon PHP itil. Se konsa, nou gen la - difikilte teknik. Yon dezyèm fwa. M 'te voye li. Pwoblèm PowerPoint. Epi nou yo tounen ak fonksyon PHP. Epi nou yo tounen ak fonksyon PHP. Se konsa, nou te mande pou fonksyon an, kote si ou pase nan yon dosye, isit la nan se jis yon egzanp nan yon dosye ki Mwen ta ka pase pous Lè sa a, ki pral genyen ladan yo kòd la PHP soti nan ke dosye ke mwen endike. Epi li pral evalye ki pous Lè sa a, nou menm tou nou gen eko, ki se yon paralèl ak printf. Sòti se yon paralèl ak kraze, ki sòti blòk la nan Kòd ke w ap pous Lè sa a, chèk vid si yon bay varyab, se tankou nil oswa zewo oswa kèlkeswa sa ki synonym ak ke yo te vid. Yeah. ODYANS: Pou seri a fisèl dot operatè yon sèl, nan PHP, se ke an menm jan ak nan JavaScript kote li lè l sèvi avèk dot la pou seri vle di plis? Se konsa, pou tout non, ou ta ka genyen dola siyen premye + ak Lè sa a, + dire? ZAMYLA Chan: Yeah. Se konsa, kesyon an se te si nan PHP nou ka sèvi ak seri a fisèl menm tankou nan JavaScript ak pluses yo. Apre sa, Jozèf pral jwenn nan ki pita. Mwen panse ke li te gen yon glise sou sa. Aktyèlman, li nan diferan. Se konsa, nan JavaScript, ou bezwen sèvi ak plis nan anchene strings. Ak nan PHP, ou gen sèvi ak operatè a dot. Se konsa, yo ap diferan. OK. Se konsa, kounye a ke nou te kouvri tout PHP sa a, kote fè li vrèman vini an sou la men? Oke, li vini an sou la men lè nou ka konbine li ak HTML nou an. Se konsa, PHP nou yo pral ban nou pouvwa a chanje HTML kontni yon paj la anvan yo loading li yo. Se konsa, ki baze sou kondisyon diferan, anjeneral itilizatè a espesifik sa a, se louvri sesyon an, nou ka montre enfòmasyon diferan. Linda, èske ou te gen yon kesyon? ODYANS: Èske ou ka anchene yon nonb antye relatif tou? ZAMYLA Chan: Wi, ou kapab. Se konsa, kesyon an se te si ou kapab anchene nonm antye oswa lòt variable.s kounye a, nou deplase sou mv, ki se yon paradigm ke nou itilize nan pset7 ak yon anpil nan Designers entènèt itilize pou òganize kòd la nan dosye yo nan sit entènèt yo. M vle di pou ki gen konpòtman egzanplè. Apre sa, fondamantalman, dosye modèl ap fè fas ak entè-aksyon ak baz done a. View dosye yo, yo gen rapò ak la estetik nan sit wèb la. Apre sa, manch yo Kontwolè demann itilizatè, pars done, fè lòt lojik. Nan pset7, nou konbine modèl la ak kontwolè a. E nou jis rele yo contrôleur ak mete yo nan anyè a piblik la. Apre sa, dosye yo wè, nou sèvi ak yo kòm modèl nan anyè a modèl. Se konsa, dyagram sa a isit la tou reprezante ki kalite menm nan divizyon ak la modèl ak kontwolè a nan koulè wouj violèt isit la sou bò gòch la ak gade nan sou bò dwat la. Se konsa, sa a se yon schematic ke kèk nan ou te ka wè nan lè biwo louvri oswa dyagram ke nou te fè desen jan ou yo te n ap kalkile konnen pset ou. Se konsa, isit la, nan yon kontwolè yo bay yo, yon modèl kontwolè, nou gen fonksyon ki gen rapò ak rekèt SQL an baz done, egzekite PHP lojik. Petèt ou ta gade moute yon aksyon nan Yahoo! Finans. Oubyen petèt, ou ta jis tcheke yo wè si yon itilizatè te soumèt yon fòme deja anvan li te gen te vizite paj ou yo. Lè sa a, ou ta rann yon fòm sou isit la. Apre te ke fòm te soumèt pa itilizatè a, aksyon an ki te espesifye nan tag HTML fòm nan ta kapab endike paj la ke li retounen ke done yo. Se konsa, tout enfòmasyon ki ta ka voye tounen nan kontwolè ou. Lè sa a, ou ta pwobableman fè yon ti jan pi plis lojik sou sa e petèt egzekite yon kèk plis demann nan baz done a SQL ak Lè sa a,, finalman, vini ak yon joliman chaje seri enfòmasyon ke ou ta pase nan nan kèk lòt modèl ki parèt enfòmasyon sa a. Koulye a, ki jan nou aktyèlman package ke enfòmasyon a? Oke, nou gen yon fonksyon rele aji sa ki te nan dosye a functions.php nan pset7, kote ou pase nan non yon dosye, non an nan yon modèl. Lè sa a, nou menm tou nou pase nan yon etalaj asosyatif. Se konsa, ki etalaj asosyatif reprezante enfòmasyon nan diferan ke ou vle pase pous Koulye a, sa k ap pase yo dwe konstan nan egzanp sa yo se ke kle yo oswa, Olye de sa, kle yo nan asosyatif la ranje, sa yo se sa k ap pase yo dwe atann yo aske konstan pa modèl la, paske li konnen li bezwen yon bagay yo rele mesaj Non oswa rele. Lè sa a, bagay sa yo sou bò dwat la, nan valè aktyèl, se konsa nan ka sa a, moun ki nan yon ti gason byen ak sa ki Milo, sa yo ki prale yo dwe valè ki ke yo ap chanje ki kontwolè a chanje chak fwa oswa ki baze sou yon kondisyon ak sèten ap pase ke pous Se konsa, isit la nan modèl, nou wè ke nou yo lè l sèvi avèk HTML karaktè espesyal, ki jis fondamantalman vle di ke nou vle jwenn fisèl la kanmarad ki la itilizatè mete pous Apre sa, nou vle ranplase mesaj nan la. Se konsa, Lè sa a, lè nou aktyèlman wè dosye a, espesifik nan se enfòmasyon te pase pous Remake byen ke kle a ki jan rann travay la se ki kle yo nan asosyatif la ranje, sa yo ki vin varyab non isit la. Se konsa, valè ki te la yo kle nan la etalaj asosyatif Lè sa a, vin nan valè nan varyab la. Koulye a, se pou yo deplase sou SQL. Li vle di pou estriktire Rechèch lang. Se konsa, sa a se jis yon pwogram lang ki fèt pou jere baz done. Apre sa, li te vini an sou la men pou nou nan finans sou sit wèb pset7 nou an. Esansyèlman, li nan jis yon fason fasil swiv ak jere objè ak tablo yo ak lyen yo youn ak lòt. Koulye a, panse a baz done SQL ou fondamantalman kòm yon dosye Excel, petèt, ki gen plizyè fèy papye ongle. Se konsa, ou ta ka gen plizyè tab, petèt, ki lye youn ak lòt. Apre sa, anpil tankou Excel, nou gen yon anpil nan fonksyonalite a ke nou vle. Pou egzanp, nou ka chwazi sèten ranje. Nou ka insert enfòmasyon. Nou ka mete ranje. E nou kapab tou efase bagay sa yo. SQL an chwazi travay pa chwazi ranje oswa yon ranje nan kolòn espesifye ki sòti nan yon baz done ki matche ak yon sèten kritè ke ou endike. Se konsa, sou isit la lè m wè chwazi * soti nan asistan kote kay = Ravenclaw, lè sa a Mwen chwazi *, ki vle di mwen se chwazi chak kolòn yon sèl nan ki ranje nan tablo a asistan men se sèlman si kolòn nan kay egal Ravenclaw. Koulye a, sa a se pi bon kalite oswa SQL. Se konsa, si mwen te ale nan fpmyadmen, ki se wout la espesifik ki nou itilize nan jere baz done SQL nou an, Lè sa a, mwen te kapab insert ki nan sit wèb la fpmyadmen. Apre sa, ki ta ka egzekite. Men, nou aktyèlman vle fè ki sou bò PHP. Se konsa, kouman nou fè sa? Oke, nou itilize fonksyon an rechèch, ki fondamantalman ègzekutra ki sijè rechèch SQL. Lè l sèvi avèk? kòm yon kontneur, nou ka pase nan sèten valè nan fisèl nou ke nou vle ranplase. Se konsa, petèt m ap estoke diferan valè nan curr_house a, ki reprezante nan kay la kounye a ke mwen pral nan. Se konsa, mwen ka pase ke nan kòm yon kontneur ak make la kesyon. Lè sa a, mwen pral fondamantalman egzekite la menm bagay jan mwen te fè anvan yo, eksepte kounye a, mwen se nan PHP. Apre sa, rechèch ap retounen yon asosyatif etalaj. Apre sa, mwen pral nan magazen li nan ranje. Koulye a, rechèch ka toujou febli. Petèt rechèch la SQL pa t 'kapab egzekite paske tab la pa t egziste. Oubyen petèt, kolòn nan pa t egziste. Yon bagay ale mal. Oke, nan ka sa a, ou pral vle fè asire w ke ou tcheke si la rechèch tounen bay manti. Epi sa a, lè l sèvi avèk trip la egal operasyon la. Lè sa a, mwen prezante eskiz, ki se yon lòt Fonksyon CS50, pase nan yon mesaj. Men, si ou gade nan eskize yo, tout li vrèman fè se rann apology.php. Yeah. ODYANS: Èske ou ta kapab esplike ou kisa ki etwal fè ant seleksyone epi soti? ZAMYLA Chan: Yeah, absoliman. Se konsa, zetwal la nan ant seleksyone epi ki soti nan vle di ke mwen vle chwazi tout la tout ranje soti nan tab avè m '. Mwen te kapab te endike chwazi non, ane, kay la. Apre sa, mwen ta jwenn sa yo twa sèlman kolòn nan tablo m 'yo. Men, si mwen di chwazi *, Lè sa a, mwen pral jwenn tout bagay nan ki kolòn. Lè sa a, mwen pral ale ou nan do a an premye. ODYANS: Se konsa, sa a se toujou nan SQL, dwa? Èske rechèch sa a oswa se PHP sa a? ZAMYLA Chan: Nou ap nan yon sijè rechèch. Se konsa, sa a se nan PHP. Se konsa, lè l sèvi avèk rechèch la fonksyon PHP, nou ap egzekite yon sijè rechèch SQL. ODYANS: Eske gen kichòy ki nan SQL ka-sansib, tankou chwazi oswa asistan oswa kay? ZAMYLA Chan: Eske gen kichòy ki nan SQL ka-sansib? Mwen kwè ke se konsa, repons lan se wi. Mwen kwè ke chwazi epi KI SOTI NAN epi kote yo ka-sansib. Pa gen okenn? ROB BOWDEN: Se konsa, li opoze an. Non yo kolòn ak vle di la tab, tout moun ki se ka-sansib. Men, nenpòt nan miskl kle mo sa yo, tankou CHWAZI, ki soti nan, ak ki kote, sa yo pa ka-sansib. OK. Se konsa, opoze a nan sa m 'te di. Se konsa, tout nan mo kle yo miskl - chwazi, ki soti nan, kote - sa yo ki yo pa ka-sansib. Men, tout lòt bagay se. OK. Ou la devan la. ODYANS: Si m 'gen $ ranje an tèm de plis pase yon sèl ranje, ki vle di se jis vin tounen yon etalaj asosyatif? ZAMYLA Chan: Se konsa, kesyon an se te si ranje gen plis pase yon sèl ranje nan li, li vin tounen yon etalaj asosyatif? Se konsa, li yon etalaj de asosyatif ranje deja. Se konsa, menm si gen nan yon sèl ranje tounen, Lè sa a, ou ta gen pou ale nan endèks 0 nan ke rezilta. Lè sa a, ou ta gen sa premye ranje. Wi, Belinda? ODYANS: Lè ou sèvi ak ===, sa a se egzanp la sèlman? Oswa ki gen lòt moun? ZAMYLA Chan: Se konsa, nan ka sa a, === se yon konparezon nan tout kalite. M regrèt. === Se yon konparezon ki konpare kalite yo. Lè sa a, == konpare atravè tout kalite. ODYANS: Èske ou ka eksplike kisa ranje a se nan sitiyasyon sa a? Èske li ranje nan done? ZAMYLA Chan: Nan pwochen glise a, mwen se ale nan eksplike ki sa ranje se. Se konsa, si ou pa lide kenbe koupe sou sa. Lè sa a, ou nan do a? ODYANS: Pou fonksyon tankou rechèch, rann ak eskize [fèbl]? ZAMYLA Chan: Kesyon an te si wi ou non sa yo fonksyon - rechèch, padon, ak rann - yo komen nan tout PHP. Sa yo se yo menm ki CS50 te ekri pou pset7. Apre sa, Jay? ODYANS: Lè w bezwen di $ _session, Se ke sèlman pou kat idantite ki gen? Oswa ou te kapab te di ke isit la? ZAMYLA Chan: Se konsa, kesyon an se te, lè nou itilize $ _session, ki te yon espesifik varyab mondyal ke nou ap lè l sèvi avèk. Isit la varyab sa a ki pral gen lokal yo fonksyon nou an. Se konsa, nou ap jis deklare yon nouvo varyab. ODYANS: Ki jan yo eskize aplike? ZAMYLA Chan: Kesyon an te ye a, ki jan yo eskize aplike? Apre sa, mwen panse ke sa a se aktyèlman yon trè bon pratik pou ou mesye ale nan seksyon an functions.php ak gade nan eskize ak wè kòman ou ka gen fè li tèt ou. Se konsa, mwen ka kite sa gade ou, men jis di ke si ou gade nan padon, Lè sa a, li pran mesaj la ke ou soumèt li padon, ak Lè sa a, li rann ke mesaj. Nenpòt kesyon pi plis? Mwen renmen kesyon. Se konsa, kenbe yo ap vini an. ODYANS: [fèbl] eko oswa ekri ak lèt ​​detache a? ZAMYLA Chan: Kesyon an te ye a, nou pa ta ka jis ou te mete eko oswa ekri ak lèt ​​detache a. Se konsa, ki ta fè yon bagay ki yon ti kras diferan. Ki ta gen enprime rechèch echwe nan sa - byen, kounye a, nou ap aktyèlman nan kontwolè nou an. Se konsa, nou pa gen aktyèlman HTML mete kanpe isit la. Eskize pa rann apologize.php aktyèlman redireksyon yo ou nan apology.php. OK. Se konsa, koulye a, se pou yo ale sou nan adrès ki kesyon soti nan pi bonè sou sa ki vrèman se ranje. Oke, rechèch ap retounen yon etalaj de ranje. Apre sa, se chak ranje reprezante pa yon etalaj asosyatif. Se konsa, si mwen te egzekite kèk rechèch SQL ak Mwen te sere rezilta a nan ranje, lè sa a lè l sèvi avèk yon bouk fortch, lè sa a etalaj la Non se youn nan premye gen - ranje. Lè sa a, mwen pral rele chak ranje nan $ ranje a. Se konsa, iteration sou sa, mwen ka Lè sa a, jwenn non kolòn ranje a bay la, ane kolòn, ak kolòn kay la. Remake byen ke mwen pa ta yo te kapab fè sa a ak ranje, paske ranje endèks Non pa egziste. Ranje se jis yon etalaj de ranje asosyatif. Se konsa, ou gen de nivo la. Yon fwa ou gen etalaj la nan ranje, ou gen jwenn nan sa. Lè sa a, ou kapab gen aksè kolòn yo. Eske sa te fè li klè? Yeah, la devan? ODYANS: [fèbl] louvri parantèz pou [fèbl]? ZAMYLA Chan: padonnen m 'konsa? ODYANS: parantèz yo louvri. ZAMYLA Chan: sa yo isit la? Sa a pèmèt m 'genyen ladan yo varyab sa a. Yeah. ODYANS: Lè w ekri ak lèt ​​detache yo, se ou enprime nan Kòd la HTML? ZAMYLA Chan: Wi. Lè m 'ekri ak lèt ​​detache, sa a isit la se andedan modèl mwen an kounye a, se konsa gade m 'nan mv metòd. Se konsa, mwen enprime nan HTML a. ODYANS: Se konsa, si nou te ale nan pwomotè zouti apre kouri sa a, nou te kapab ki aktyèlman nan kòd? ZAMYLA Chan: Sa se yon gwo kesyon, yeah. Se konsa, si ou te antre nan zouti yo pwomotè nan Firefox lè l sèvi avèk Firebug oswa Chrome, lè sa a yeah, ou te kapab wè HTML nan espesifik. Se konsa, li pa t 'vle montre $ ranje ["Non"]. Li ta montre kèlkeswa sa ki Non se nan ki ranje. ODYANS: Jis yon pwoblèm jeneral, sa yo TR ak td defini kòm? Poukisa ta nou [fèbl]? ZAMYLA Chan: Table tr ranje, tab Lè sa a, Td kolòn. OK. ODYANS: Yeah, li nan tablo done. ZAMYLA Chan: done Table. Yeah. ODYANS: Li se yon ranje nan ki nan se ranje trete tankou yon kolòn? ZAMYLA Chan: M regrèt. Èske ou ka repete sa? ODYANS: Ki jan ou ta visualized ranje? ZAMYLA Chan: Ki jan ou ta visualized ranje nan ki kalite fason? Èske ou ap pale de sa yo ranje isit la oubyen ranje yo tr? ODYANS: ranje yo. ZAMYLA Chan: ranje sa yo isit la? Mwen ta visualized sa a kòm Mwen egzekite rechèch mwen an. Apre sa, li di, OK, mwen gen swa 0 a n kantite lajan pou ranje ki matche ak kritè yo ke ou te kontexte. Se konsa, mwen gen kèk nimewo nan ranje. Se konsa, ranje, $ ranje yo, magazen chak youn nan moun ki ranje nan yon etalaj. Se konsa, menm si li nan jis youn nan yo, li nan toujou yon etalaj de ranje ki matche ak li. Se konsa, lè sa a, pou egzanp, sa a se menm jan ak lè ou chache kachèt ki soti nan itilizatè. Apre sa, kritè yo te gen kote ID egal ID a sesyon. Gen reyèlman sèlman se yon sèl ranje ki ta ka matche ak sa a. Men, toujou ranje jis tounen yon sèl ranje. Se konsa, ou ta gen pou ale nan ranje, endèks 0, endèks kachèt aktyèlman jwenn nan kachèt ou. ODYANS: Èske fonksyon an ekri an lèt detache nan eko menm bagay la? ZAMYLA Chan: Wi. Wi. Enprime yon eko nan menm bagay la. ODYANS: Èske bouk la fortch la sèlman fason yo endèks nan ranje? ZAMYLA Chan: Eske yon bouk fortch wout la sèlman ke ou ka repňte nan ranje? No Ou kapab tou itilize yon pou bouk, yo bay ke ou konnen longè a nan etalaj ranje a. ODYANS: Èske ou ta kapab jwenn aksè nan li lè l sèvi avèk yon ranje kòm [fèbl]? ZAMYLA Chan: Se konsa, ou pa ka jwenn aksè li jis lè l sèvi avèk ranje si ou pa gen yon fortch bouk bay ki ou pa yo te deklare ranje. Wi. Yeah, tout an blan an. ODYANS: Se konsa, sa tr ak td fè? ZAMYLA Chan: Se konsa, tr ak td yo HTML Tags. tr endike nan konmansman an nan yon ranje tab. Epitou, chak td ki endike ke yon nouvo tablo done kolòn. ODYANS: Pou yon vizyèl nan sa ki yon ranje se tankou, jis imajine SQL a, ki jan yo gen yon ranje. [Fèbl]. ZAMYLA Chan: Yeah. Sa a se yon pwen gwo. Ou ka visualized ranje kòm jis tankou nan yon tablo Excel, jis lis la nan ranje yo. OK. Tout dwa. Se konsa, kounye a ke nou te fin janbe chwazi yo, si pa gen okenn keksyon ankò, nou pral ale sou sou insert. Se konsa, si mwen te vle insert nan kèk tab ak insert sèten kolòn valè, mwen te kapab insert tèt mwen nan Ravenclaw nan ane 7. Men pafwa ka gen kopi valè, menm jan nou te wè nan pset7 lè nou yo te à dosye nou yo. Se konsa, nan ka sa a, nou vle sèvi ak Kopi LEJANN MIZAJOU, se konsa ke nou pa fè sa magazen ranje miltip ak menm bagay la tou valè men pito mete li. Lè sa a, nou gen aktyèlman aktyalizasyon, ki se pa yon insert. Se jis nan yon ajou kote ou mete nan yon tablo sèten ak yon ba kritè ak Lè sa a, finalman, efase, ki fè yon bagay trè menm jan an. ODYANS: Èske ou ta kapab yon ti tan ale sou kle a kopi? ZAMYLA Chan: Yeah. Esansyèlman isit la, mwen gen INSERT NAN gringotts, se, galyon, valè sa yo. Men, ID, prezimableman, se yon kle inik valè mete kanpe nan miskl tab. Se konsa, si mwen deja genyen ki ID mete kanpe, Lè sa a, mwen pa ka mete yon nouvo ranje. Se konsa, si li pa egziste deja, Lè sa a, mwen gen yo mete li. Nan mitan an nan blan an. ODYANS: Se konsa, insert, aktyalizasyon, efase, ak chwazi, moun sa yo ki tout ki disponib lokalman [fèbl]? ZAMYLA Chan: Se konsa, insert, aktyalizasyon, efase, ak chwazi, yo tout demann SQL. Se konsa, chak fwa w ap itilize SQL, ou pral gen sa yo ki disponib. ODYANS: Retounen nan ti tès ki sot pase yo - te gen yon kesyon ki te fè fas ak si ou te gen yon tab e yo te vle insert rezilta tès nan yon sèl, epi ou insert non ou se konsa li p'ap kite ou [Fèbl] tès nòt zanmi ou a. Kouman ou ta ka fè sa ak insert? ZAMYLA Chan: Se konsa, kesyon a te sou yon mitan tèm kesyon anvan yo. Mwen se pa o kouran de ki yon sèl li se kounye a. Se konsa, petèt apre sa, si ou vle vin leve, li fè m ', lè sa a mwen kapab sètènman ba ou konsèy. Men, pale de yo mete bagay sa yo, tankou pran nòt yon moun nan lè ou pa ta dwe, se pou yo pale sou SQL piki atak. Se konsa, yon atak piki SQL se esansyèlman kote yon moun pran avantaj ki genyen nan sekirite a ki ba nan la fason ki w ap pran nan done. Se konsa, nan isit la, jis tankou nan CS50 finans, lè nou louvri sesyon an, nou ka antre nan yon D 'nan fòm lan login, ti bwat la tèks premye fwa, ak Lè sa a, antre nan yon modpas. Petèt Kòd PHP nou an ta ka gade yon bagay tankou sa, kote se $ non itilizatè se non itilizatè la pòs-done ak modpas se modpas pòs-done. Lè sa a, nou jis egzekite rechèch nou an, di, OK, byen, rechèch nou an ki pral chwazi nan itilizatè nou an, kote non itilizatè a se nan yon sèl ke yo soumèt. Ak modpas la se modpas la, sa vle di ke modpas yo matche. Koulye a, sa ki si olye pou yo aktyèlman soumèt yon modpas aktyèl, tankou 12345 ak devine nan PRONG ki di modpas ak ap eseye Hack yo kont, sa ki si olye pou yo soumèt sa a. Yo te kapab tape nan petèt yon devine nan yon modpas. Lè sa a, yo ta fini la quote Lè sa a, tape nan oswa 1 = 1. Sa ta apante dirèkteman nan SQL an sijè rechèch yo gade yon bagay tankou sa a. Chwazi nan itilizatè ki kote non itilizatè = Broch ak modpas egal yon bèl ti flè oswa 1 = 1. Se konsa, swa modpas la gen yo dwe kòrèk oswa 1 = 1, ki se toujou vre. Se konsa, nan ka sa a, fondamantalman, yon itilizatè kapab pran avantaj de sa a ak jis louvri sesyon tèt yo nan ak Hack kont yon moun. Se konsa, Se poutèt sa nou vle pou fè pou evite yon moun ki gen fè sa. Men, Chans pou, fonksyon an rechèch pa pase nan placeholders yo ap pran swen nan sa a pou ou. Epitou, ou pral tipikman pa janm vle ki aktyèlman soumèt modpas yo tèt yo. Se poutèt sa nou ache oswa chiffres yo nan CS50 finans. ODYANS: egzamen ki sot pase a te pale sou strings chape miskl. nou gen enkyete sou sa? ZAMYLA Chan: Sa se yon kesyon bon. Strings yo chape miskl se definitivman yon fonksyon ki te itilize nan rechèch nou an. Men, definitivman gade nan sa. Mwen ta di sa a, se jwèt ki jis yo konnen ke ou ta bezwen rele ki fonksyone sou yon fisèl. Yeah, Belinda? ODYANS: Ki jan ou fè konnen ki lè li nan quotes sèl oswa quotes double? Epi tou, mwen santi mwen tankou nan konferans ou mansyone yon bagay sou pa gen [fèbl a] oswa yon bagay oswa nan dezyèm quote yon sèl nan fen an. Mwen panse ke li vize deyò nan konferans ki w ap sipoze gen apostwòf 1 ak Lè sa a, pa gen apostrof oswa yon bagay. ODYANS: [fèbl]. ODYANS: bagay la se dènye yon sèl la quote nan gen nan ke dezyèm bwat pa ta dwe la. [Fèbl] Paske lè ou pran ki sot pase a yon sèl site deyò epi yo matche ak sa yo pou kontni kote modpas la se, si ou gen ki rechèch, gen nan yon quote yon sèl nan fen a deja. Ou vle itilize ke quote yon sèl kòm youn nan ki ap fè fas yon sèl la [Fèbl]. Se konsa, sa la aktyèlman nan tèks sa a bwat pa ta dwe gen sa. ZAMYLA Chan: mwen pral chanje sa. OK. Si pa gen okenn kesyon, Lè sa a, mwen pral pase l nan men Jozèf pale sou JavaScript, et setra. [Aplodisman] JOSEPH Ong: Se konsa, nou ap kouri yon ti jan dèyè. Se konsa, si ou gen yo kite, ke se ok. Men, nou mande pou ou kenbe tèt ou desann si w ap nan mitan an, kidonk, ou Pa bloke kamera a epi ou sèvi ak sòti nan tounen si ou gen. Mwen se Jozèf nan chemen an. Hi. Tès, egzamen an. Dann, se ke sa ki bon? Fre. Se konsa, videyo a ap tou ap afiche sou entènèt pou moun ki oblije kite kounye a. Gòch. OK. Se konsa, revizyon egzamen. Sa a se yon chat. Koulye a, JavaScript, ki se petèt pa kòm aww pou kèk nan nou guys. OK. Se konsa, sa a, se premye, sonje soti nan Zamyla. Sonje ke PHP se kouri sou sèvè a. Ak anpil fwa, ou nèg te ekri pasan nan PHP ekri ak lèt ​​detache soti HTML, dwa? Se konsa, yon fwa ke Kòd ègzekutra, ki Pwodiksyon HTML ke ou enprime soti vin voye nan itilizatè a. E yon fwa sa rive, pa gen okenn PHP plis kapab dwe kouri, sof si ou Reload paj la, nan kou, ki reexecutes PHP a. Men, yon fwa ou ekri ak lèt ​​detache soti ke HTML, ou pa kapab ale nenpòt kote. Se konsa, se ke HTML voye sou nan itilizatè a, ki se navigatè a sou isit la, kote Milo se lè l sèvi avèk òdinatè a. Se konsa, byen, gen plizyè bagay yon fwa nou voye HTML itilizatè a. Pafwa nou vle fè yon bagay tankou lè ou klike sou yon bagay, nou vle bwat vijilan nan pòp moute, kalite sa yo ki nan entèraksyon, tankou lè ou peze la kle yo, lè ou klike yon bagay sou la paj, mwen vle yon bagay yo rive. Oke, ou pa ka reexecute PHP Kòd yon fwa se ke HTML mete. Se konsa, kouman ou fè sa? Nou entwodui yon nouvo lang yo rele JavaScript, ki te kouri nan navigatè a ki pèmèt ou fè bagay sa yo HTML apre w fin resevwa yo soti nan sèvè a. Lè sa a se poutèt sa nou rele li yon kliyan-kòt lang programmation. Li travay sou òdinatè ou - kliyan an. Nenpòt kesyon sou ki byen lwen tèlman? Sa paradigm fè sans nan moun? OK. Bon. Tout dwa. Se konsa, premye bagay la sonje se JavaScript se pa PHP. Yo gen kèk sentaks diferan, ki nou pral antre nan. Apre sa, yo gen itilizasyon trè diferan. JavaScript, ankò, pou ou navigatè, pou kliyan an. Sèvè kouri yon kote sou yon lòt moun nan òdinatè ki voye enfòmasyon nou la a, kòrèk? Se konsa, si nou mande w yo ekri Kòd PHP sou yon kesyon egzamen, pa ekri JavaScript ak vis vèrsa. Ou pral jis pèdi pwen, epi li pa pral dwat. Se konsa, kite a jwenn nan kèk sentaks diferans ki genyen - JavaScript sou bò gòch la ak PHP sou bò dwat la. Premye bagay ou pral avi ak JavaScript, nou deklare varyab ak mo kle a var - V-A-R. PHP itilize siy a an dola, kòm Zamyla diskite pi bonè. Si ou vle deklare yon asosyatif etalaj, nou wè sentaks la abitye sou bò dwat la ak PHP. Ki sou bò gòch, olye pou ou itilize aparèy òtopedik Curly. Lè sa a, kle ou yo sou bò gòch la. Lè sa a, ou gen yon kolon. Lè sa a, ou gen valè yo ke ou vle. Se konsa, sa a se ki jan ou ta fè l 'nan PHP sou bò dwat ak sa dezyèm liy ki kòmanse nan Milo. Apre sa se ki jan ou ta fè l 'sou la kite bò nan JavaScript si ou vle sa nou rele yon objè. Apre sa, objè ki nan JavaScript yo jis ranje asosyatif. Se konsa, si ou vle jwenn aksè nan jaden, nan PHP ou sèvi ak sa a sentaks bracket. Apre sa, fason sa a, ou ka mute sa a jaden mèt kay Lauren. Oke, nan JavaScript, si yon sèl vle gen aksè a yon jaden ak chanje li, ou ka sèvi ak sentaks la dot. Ou kapab tou itilize sentaks la bracket. Men, ou pa kapab itilize a dot sentaks nan PHP. Sa pa pral travay. Li sèlman ap travay nan PHP. E finalman, ekri ak lèt ​​detache bagay sa yo nan konsole, ou sèvi ak console.log, ki ou nèg sèvi ak yon anpil nan pset8. Ou ka console.log sa a. Si ou vle ekri ak lèt ​​detache yon etalaj nan PHP, ou gen yo sèvi ak ekri ak lèt ​​detache r. Apre sa, sou bò dwat, ou wè mwen Hash fisèl seri laba a. Yon moun mande pi bonè. Mwen sèvi ak yon plis nan JavaScript. Si m 'vle anchene yon bagay nan PHP, mwen sèvi ak dot la. Sa yo se diferan. Si w ap ekri Kòd PHP, Pa sèvi ak yon plis. Si w ap ekri JavaScript Kòd, pa ekri yon dot. Li pral sa ki mal. Apre sa, ou pral tris. Diferans Se konsa, sentaks. Konnen sentaks ou, paske si ou gen ekri yon kesyon epi ou sèvi ak sentaks soti nan lang lan sa ki mal, li pa pral travay. Apre sa, li pral sa ki mal. Se konsa, kite a pale sou kèk kontwòl koule diferans ki genyen, ki jan ou sèvi ak pasan nan chak nan yo. Zamyla janbe bò dwat la. Stuff sou bò dwat yo ta dwe abitye. Se pou yo gade nan ki sou bò gòch. Lè ou itilize pou n bouk nan JavaScript, varyab bouk ou a, var mwen la a, bouk sou kle yo nan etalaj la. Se konsa, ou wè Non, kay, ak wòl. Si m 'console.log mwen, mwen jwenn Non, kay, ak wòl. Sa yo se kle yo. Nan JavaScript, yon bouk fortch ale sou valè yo nan etalaj sa a. Se konsa, ou remake yo ap tou de mwen. Men, nan isit la sou bò PHP, li simagri soti Milo, CS50, ak maskot. Sa yo se valè yo nan PHP. Se konsa, sa yo, se ki jan de moun sa yo yo diferan nan lang yo diferan. Se konsa, si w ap itilize yon fortch bouk, pa asime ke li ba ou kle yo. Men, si w ap itilize yon pou n bouk, pa fè sa asime li ba ou valè yo. sa a fè sans byen lwen tèlman? Glise nan pwochen ki pral montre w ki jan ou ka gen aksè nan opoze a nan chak nan yo. Oke, si ou gen kle a nan JavaScript epi ou vle valè a soti, ou jis endèks nan la etalaj ak sa. Se konsa, Milo nan mwen pral fè ou jwenn sa ki ou vle - vèti yo. Genyen sentaks sa a diferan nan PHP. Si ou reyèlman vle konnen l ', mwen pa fè sa panse ke nou te te montre li nan ou ankò. Men, si w ap enterese, ou ka itilize sa a sentaks plis sou bò dwat la bò ki pral aktyèlman kite ou jwenn nan kle nan PHP lè w ap sèvi ak yon fortch bouk. Se konsa, jis yon ti kras nan Anecdotes si w ap enterese. Se konsa, sa se sèlman yo demontre nan diferans ki genyen ant de pasan sa yo. Pa melanje yo moute lè w ap pwogramasyon yon kesyon. Nenpòt kesyon sou sa. Fre. Tout dwa. JavaScript objè yo. Mwen te pale sou yo. Yo ap tankou ranje asosyatif. Bagay la yon sèl mwen ta renmen ou sonje isit la se ke yon valè nan yon asosyatif etalaj kapab anyen nan JavaScript. Li ka menm gen yon fonksyon, tankou laba a. Mwen gen yon fonksyon ki se yon valè de yon kle. Men, si mwen vle rele ki fonksyon, Mwen jis jwenn aksè nan jape. Lè sa a, mwen mete parantèz yo apre sa. Apre sa, ki travay. Se konsa, nenpòt kesyon? Pa gen okenn? OK. Bon. JavaScript, tankou PHP, se blesi tape. Kisa sa vle di? Li fè sa yo gen kalite. Men, lè ou deklare yon JavaScript varyab, ou di var mwen. Ou pa di l '. Sa se pa yon bagay. Ou jis di li nan yon varyab. Lè sa a, JavaScript pral fè fas ak nan kalite anba kapo a pou ou. Nou ka lib konvèti ant kalite paske yo te sa a. Se konsa, mwen kòmanse soti kòm yon nimewo nan ka sa a. Lè sa a, mwen gen yon fisèl. Apre sa, mwen ajoute mwen nan li. Apre sa, mwen mute li tounen nan mwen. Se konsa, sou sa liy an premye, mwen se nimewo a. Sou liy, dezyèm lan, mwen kounye a vin tounen yon fisèl apre m 'fè transfè a. Ak isit la, mwen jis konkatenan ladan nimewo sou fisèl la. Se konsa, ou wè ke menm si mwen te gen yon nonb antye ki pè ki nan pati a an premye, li nan sòt nan tankou yo te konvèti nan yon fisèl ak Lè sa a yo te ajoute sou ki fil hello. Se konsa, sa a, se sa mwen vle di pa sezisman nan ki lach. Sa a ke ou konvèti ant kalite trè fasil. E li pa voye jete avètisman nan ou renmen C ap fè. Se konsa, mwen kounye a gen bonjou 123 nan fisèl la. Kap vini an. Nou ka la tou pou gremesi konpare ant kalite. Se konsa, si ou jis sèvi ak ==, anpil tankou nan PHP, JavaScript fè yon bagay menm jan an. Fisèl la 123 se menm bagay la kòm nimewo a 123 lè w itilize egal doub. Lè yo itilize egal trip, li tou vle asire w ke kalite a se menm bagay la. Se konsa, paske sa se yon fil e ke se yon nimewo, menm si yo ap tou de 123, lè w itilize trip egal, ou jwenn fo. Nan doub la egal ka, ou jwenn vre, paske egal doub fè sa ki pa pran swen sou kalite. Egal Triple pran swen sou kalite. Kesyon? OK. Ak yon lòt bagay sou JavaScript se sijè ki abòde se kalite mondyal sof si w ap nan yon fonksyon. Apre sa, li travay menm bagay la tou wout nan PHP aktyèlman. Se konsa, kite a ale nan egzanp sa a. Mwen mete m '999. Lè sa a, m 'antre nan sa a pou bouk. Se konsa, si mwen enprime mwen soti nan sa a pou bouk, mwen espere 0, 1, 2, 3, 4. Mwen jwenn yo mwen = 4. Li ogmantasyon mwen kounye a nan 5 nan nan fen pou bouk la. Lè sa a, li kraze soti nan bouk la, paske yo pa satisfè nan kondisyon ankò. Ki sa ou panse ke pwochen console.log simagri soti? Se konsa, se sa li t ap fè nan C. Nan C, paske si ou gen tankou var mwen deyò epi ou gen var mwen andedan yon bouk, tankou yon pou bouk, lè sa a li fè li sa yo ki li nan scoped ke de la mwen an yo diferan. Nan JavaScript, li pral jis trete li kòm menm mwen an. Mwen jwenn 5, paske sa ki te valè a apre li fin quitté soti nan bouk la. Se konsa, moun mwen an yo se menm bagay mwen an. ki fè sans? Oke, li fè sans soti nan yon plan JavaScript. Men, menm paradigm a pa fè pote nan men C. Yo gen diferan règ delimitasyon. Wi. ODYANS: [fèbl] deyò fonksyon an [fèbl]? JOSEPH Ong: Se konsa, deyò ki fonksyon? Se konsa, mwen pral jwenn ak sa yo ki nan jis yon dezyèm fwa. Se konsa, nou rele foo (mwen). Sa a pase mwen nan foo, ogmantasyon li, epi Lè sa a, journaux li. Se konsa, li te 5. Se konsa, li vin 6. Men, sa ki Mwen ap pale de se ke mwen nan ki fonksyon. Paske li nan yon paramèt, li nan scoped ak sa yo ki fonksyon. Se konsa, yon fwa mwen aktyèlman jwenn soti nan ki fonksyon, li kounye a pwal ale tounen nan mwen la fin vye granmoun. Se ke mwen sèlman scoped paske li la nan yon fonksyon. Epi nou gen sijè ki abòde ak fonksyon. Men, nou pa gen sijè ki abòde deyò nan fonksyon nan JavaScript. ki fè sans? Wi. Kesyon. ODYANS: Menm [fèbl]? JOSEPH Ong: Se konsa, yeah. Nan PHP, li nan kalite la menm nan bagay. Genyen yon sibtilite ti tay aktyèlman. Men, ou ka mande m 'sou ke apre revizyon an. Ou pa reyèlman bezwen konnen ki sibtilite pou egzamen an. Pou tout entansyon ak objektif, tankou varyab, mondyal ak PHP, sof si yo ap nan yon fonksyon, se li menm bagay nan JavaScript. Wi. ODYANS: Poukisa sa a se pèmèt nan JavaScript epi pa gen okenn kote lòt bagay? JOSEPH Ong: Se konsa, poukisa se li pèmèt nan JavaScript epi yo pa nan C? Se jis nan moun ki va te vini ak JavaScript deside ke sa a te OK nan JavaScript. Se konsa, li jis tankou yon lang programmation konvansyon jan nou ta di. Wi. ODYANS: Se konsa, poukisa te fè li ale soti nan 6 a 5? JOSEPH Ong: Se konsa, li te ale soti nan 6 a 5, paske lè m 'te pase mwen nan foo, ki mwen andedan nan foo se kounye a scoped foo, paske sijè ki abòde egziste nan fonksyon nan JavaScript. Men, yon fwa mwen jwenn soti nan isit la, paske li te scoped nan fonksyon an, mwen se jis lè l sèvi avèk mwen regilye a ki te anndan rès la nan koule nan kontwòl. Fè sans? Èske mwen ka deplase sou? Tout dwa. Fre. Aseptasyon de sa a se objè yo pase pa referans. Ou konnen jan lè ou pase yon etalaj nan C ou te kapab aktyèlman modifye etalaj la? Li nan menm bagay la nan JavaScript. Si m 'pase yon objè, nan ka sa a, mwen pase Milo nan fonksyon catify sa a. Milo kòmanse soti. Non li, se yon Milo Bannann. , Fòk mwen pase ke objè nan yon fonksyon paske li nan yon objè, yon asosyatif etalaj nan JavaScript. Lè m 'fè yon operasyon nan ki fonksyon, li pral aktyèlman chanje objè a. Se konsa, sa a pral sèlman rive pou objè nan JavaScript, jis renmen li k ap pase pou ranje andedan nan Non C. Se konsa, Milo a ap aktyèlman vin chat kounye a. ki fè sans? Se konsa, sa a sèlman travay pou objè yo. Objè yo pase pa referans. Wi. ODYANS: Se konsa, w ap di ke nan kontra a varyab mwen. JOSEPH Ong: Yeah. Ki varyab mwen te jis yon nimewo, dwa? Se tankou nan C lè ou pase yon nonb antye ki pè yon, li fè yon kopi. Men, lè ou pase yon etalaj, li aktyèlman chanje pozisyon aktyèl la nan C. Menm bagay la ki k ap pase ak JavaScript nan ka sa a. Tout dwa. Apre sa, kap vini an, Milo se tris paske li se kounye a yon chat. Sa ki te aktyèlman Milo apre kèk vwayaj nan veterinè la. Se konsa, kouman nou itilize JavaScript nan yon paj wèb? Nou ka gen ladan li. Sa a se kòd HTML ak etikèt yo teren. Se konsa, mwen gen Tags teren la. Lè sa a, mwen mete kèk JavaScript Kòd ki nan etikèt yo script. Lè sa a, li ègzekutra sa a. Lè m 'jis fè l' tankou sa a, li nan rele aliye JavaScript. Li nan kalite sal, paske la JavaScript se aktyèlman nan HTML a. Yon fason pi bon fè sa a, anpil joli, se yo ekri JavaScript ou a nan yon dosye ekstèn ak Lè sa a, bay tag nan script ak yon sous. Lè sa a yo ap ale nan ki dosye JavaScript epi li kòd la JavaScript soti nan ki pote pito. Apre sa, fason sa a, ou pa gen yon anpil nan JavaScript nan konmansman an nan ou Dosye HTML, sa ki fè li vrèman sal. Ou jis mete l 'yon lòt kote. Lè sa a, li pral li li l 'nan men la. Fè sa fè sans? Plasman zafè. Nan ka sa a an patikilye, nan script lan devan kò a. Se konsa, lè m 'egzekite ki, gen nan pa gen anyen nan kò a ankò. Petèt sa a pral fè yon ti kras pi plis sans lè m 'montre pati sa a kap vini an. Nan ka sa a, script la vini apre div la. Se konsa, div a aktyèlman parèt nan paj an premye. Isit la nan sa a ti sèk wouj, ou wè tèks la parèt. Lè sa a, alèt a montre yo. Nan pwemye ka a, paske script la te ye anvan an div a, nan alèt montre moute an premye. Lè sa a, div a montre moute apre ou rejte bwat la. Se konsa, nan ekzekisyon an zafè. Se konsa, nou pwal kenbe sa a nan tèt li. Sa a pral enpòtan nan yon ti kras. OK. Se konsa, byen, ki jan ou rete tann jiskaske la se tout paj chaje Lè sa a, ou anvan ou egzekite kèk Kòd? Nou pral jwenn nan sa a yon ti kras ti jan pita tou. Men, jis kenbe plasman sa a zafè ki gen nan tèt ou pou lè nou vin nan yon lòt glise. Se konsa, nou jwenn yo Dom kounye a. Ak sa ki Dom? Se konsa, si ou gade nan Kòd HTML, li jis yon pakèt moun sou tèks sou ekran an. Se konsa, kouman JavaScript konnen ke sa a se yon eleman HTML? Se konsa, nou gen gen kèk memwa reprezantasyon nan sa a estrikti ki nou genyen. Chak fwa nou gen sa a nan memwa reprezantasyon nan JavaScript, nou rele ki Dom la. Apre sa, li nan jis yon fason ke gen moun ki deside ke nou ta dwe reprezante sa a Estrikti HTML kòm. Ak sa ki Dom sa a sanble? Oke, nan reprezantasyon memwa, nou pran tèks sa a. Lèfini, nou vire l 'nan memwa reprezantasyon. Se konsa, sa a se HTML la. Se konsa, nou premye chèche konnen ke chak Dom pye bwa gen yon dokiman. Li sanble tankou yon pyebwa. Apre sa, dokiman an gen HTML nan tag, aktyèlman tout bagay andedan nan sa a kounye a. Tag nan HTML gen de timoun. Li te gen yon tèt yo. Tèt sa, si ou gade nan dekoupaj sou la nan ki jan li estriktire ant Tags yo fèmen, tèt gen yon timoun. Timoun lan se tit. Egzakteman. Koulye a, nou gen yon pitit kò. Lè sa a, ke kò a gen yon timoun yo rele fanmi an. Epi ki fanmi ki gen twa timoun - pi ansyen, mwayen, ak pi piti. Se konsa, ou ta dwe konnen ki jan yo trase yon dyagram tankou sa a lè nou mande w kouman trase yon dyagram lè nou bay ou HTML la sou bò gòch la. Konnen ki jan yo pwodui pye bwa a Dom. Ak andedan tout bagay sa yo, gen nan jis kèk tèks, ki mwen te reprezante tankou ti bwat. estrikti sa a pye bwa Dom fè sans ak sa ki Dom a se? Se konsa, sa p la kanpe pou? Plis pase isit la, p la sou gen nan ki tag reprezante yon tag paragraf ki nan HTML. Se konsa, ou ka gade li. Men, li jis vle di li nan kèk espas pou kèk tèks. Apre sa, li gen kèk CSS stil default, paske li nan yon tag paragraf. Men, pa vrèman enkyete sou pati sa a twòp. Jis konnen li nan yon kontneur pou kèk tèks. Wi. Kesyon? Wi. ODYANS: Ou jis mansyone CSS. Fanmi an hash ak hash la tout sa ki bagay se fondamantalman reprezante kat idantite ki gen nan CSS? JOSEPH Ong: Yeah, egzakteman. Mwen pral jwenn nan sa achaj sa yo vle di nan yon dezyèm fwa. Lè Angela janbe CSS, li te pale osijè de seleksyon CSS. Sa yo se seleksyon yo CSS ki li te ap pale de. Wi, Rob? ROB BOWDEN: Mwen ta tou kòmantè ki Dom andedan nan tag tit se tou yon ne tèks. JOSEPH Ong: Dwa. Se konsa, andedan tag nan tit, Mwen gen kèk Dom tèks. Se konsa, reyèlman, tit sa ta dwe gen tankou yon ti bwat vini sou nan li tou. Men, li pa reyèlman gen pwoblèm twòp nan ka sa a. Nou pa reyèlman sousye de nœuds tèks, kòm nou rele yo, twòp. OK, nou fè. Aparamman, nou fè. Apre sa, mwen pral ranje ke lè Mwen Upload l 'ankò. ki fè sans? Se konsa, kouman nou travay ak Dom a? Chak fwa ou fè fas avèk Dom a nan JavaScript, gen de etap. Ou chwazi yon eleman Dom. Lè sa a, ou fè bagay sa yo nan li. Se konsa, nan ka sa a, abstrè, mwen te chwazi eleman nan mitan. Lè sa a, yon egzanp pou fè bagay li ta dwe chanje tèks la. Sa itilize yo dwe Bob. Koulye a,, ki sa mwen te fè li te mwen chanje Bob Milo nan ka sa a. Se konsa, kouman nou aktyèlman fè sa? Ki jan nou fè Chwazi a? Apre sa, ki jan nou fè a bagay bagay la yon fwa nou te pran li? Oke, nan fason ou nèg te aprann li nan klas sa a se lè l sèvi avèk yon bagay nou rele jQuery. Se konsa, sa se jQuery? jQuery se yon bibliyotèk ki fè JavaScript pi fasil ekri. Se konsa, yon moun te pran tan nan e li te ekri jQuery. jQuery se aktyèlman ekri nan JavaScript. Lè sa a, paske yo te fè sa a, nou kounye a gen yon pakèt tout fonksyon ki nou kapab itilize ki fè nou ap viv reyèlman fasil. Se konsa, sa yo se kèk nan la bagay sa yo li fè sa? Li fè chwazi eleman pi fasil. Li fè chanje HTML, ajoute klas pi fasil. Li fè Ajax pi fasil. Nou pral jwenn ke nan yon dezyèm fwa. Lè li nan analoji nan C bibliyotèk yo. Se konsa, ou gen ladan yo string.h, ou jwenn strlèn. Ou jwenn strki, nan tout bagay sa yo. Lè ou gen ladan yo jQuery, ou jwenn bèl fason yo chwazi eleman nan chanjman bagay sa yo, et setra. Ou jwenn siplemantè fonksyonalite ki JavaScript pa ba ou. Se konsa, jQuery se pa JavaScript. jQuery se yon bibliyotèk ki nan ekri nan JavaScript ki fè JavaScript pi fasil ekri. Se konsa, jQuery se pa yon pwogram lang. Men, JavaScript se. fè. Asire w ke ou jwenn tèminoloji ou dwat. Nenpòt kesyon? Wi. Eske se sa ke yon kesyon? Tout dwa. Se konsa, kouman ou sèvi ak jQuery? Oke, lè w ap ekri kèk JavaScript Kòd epi ou genyen ladan yo yon jQuery nan tèt la nan dosye ou kòm yon dosye script, ou sèvi ak siy a an dola kounye a jwenn aksè nan jQuery. Lè sa a se diferan de siyen an dola nan PHP. Li nan menm senbòl an ou tape sou klavye ou. Men, yo vle di bagay sa yo trè diferan. Siy dola nan PHP vle di sa a ki jan mwen deklare yon varyab. Nan JavaScript, lè ou te enkli jQuery, li vle di pou jQuery. Se konsa, kenbe sa nan tèt li. Se konsa, kouman ta ka nou chwazi Dom eleman? Bon, lè ou fè li lèd JavaScript a fason sa a, ou gen aksè nan dokimante varyab mondyal la. Lè sa a, ou jwenn eleman pa fanmi ID. Sa a se vrèman long ak bavar epi yo pa trè bèl. Oswa ou kapab jwenn tout eleman ki se yon tag p. Ki travay twò nan JavaScript. Men, pa janm nou reyèlman te montre ou sentaks la twòp. Ki sa nou te montre ou te jQuery. Se konsa, ki tout antye seleksyon 'kanpe ki te eksprime nan JavaScript jis vin kondanse nan sa a an dola trè bèl siyen fanmi hashtag. Ak $ p, jis ki kote li nan tankou sa. Si ou vle chwazi tout tags p andedan yon fanmi, nou mete yon espas ant de la. Epi, koulye a, nou jwenn tout p la Tags andedan yon fanmi. Apre sa, gade familye? Oke, Angela te pale osijè de CSS seleksyon. Ban m 'yon sèl dezyèm fwa. Se konsa, yo nan lòd yo chwazi yon eleman, ou jis itilize menm bagay la menm jan ou ta fè ak yon seleksyon CSS. Si ou mete yon hash la devan nan li, li chwazi pa ID. Yon dot chwazi pa klas yo. Si ou jis gen bagay an san yo pa achaj oswa pwen, li chwazi sa yo ki Tags. Kesyon yo. Wi? ODYANS: Lè nou itilize dot nan nou an HTML, se ke pa jQuery? JOSEPH Ong: Dot nan HTML nou se yon bagay JavaScript. Li pa yon bagay jQuery. Nan fason ou nèg te aprann li ak jQuery se yo sèvi ak. html. Lè sa a, ou te pase l 'tou sa HTML an ki pral fè. Se konsa, mwen pral jwenn ak sa yo ki nan jis yon dezyèm aktyèlman. Se konsa, kouman nou fè bagay eleman yon fwa nou te chwazi li? Se konsa, sa a, se yon egzanp nan chwazi yon eleman. Se konsa, kounye a, nou vle fè bagay ak li. Se konsa, nan ka sa a, kite m 'ale tounen nan porte-objet a anvan yo. Li te Bob anvan. Apre sa, mwen ta vle chanje ki andedan HTML Milo. Se konsa, mwen rele fonksyon an HTML soti nan eleman an. Sa fonksyon HTML se yon metòd pou eleman. Lè sa a, mwen bay li sa ki Mwen vle HTML la yo dwe. Apre sa, li jis ranplase sa ki nan andedan nan ki tag ak tou sa mwen ba ou li. Wi. Kesyon? ODYANS: se hashtag a te itilize pou sèlman jQuery la. [Fèbl] nou pa ta sèvi ak sa a. JOSEPH Ong: Yeah, egzakteman. Men pa enkyete w twòp sou pi bon kalite JavaScript. Mwen jis vle ou mesye yo konsantre sou ki jan ou ta fè l 'ak jQuery, paske ki k ap pase yo dwe enpòtan nan pati sou egzamen an. Dwat. Egzakteman. Se konsa, ou wè ke hashtag, se konsa ke koresponn ak chwazi eleman nan ak ID mitan an paske nan ki hashtag. Hashtag vle di ID. Apre sa, eleman sa a te gen yon ID nan mitan yo. Se konsa, sa a, se eleman ki nou chwazi. ODYANS: [fèbl]. hashtag siy dola [fèbl]? JOSEPH Ong: Se konsa, pa gen okenn. Kesyon an se ou ka sèvi ak. Valè. Ak valè. Sèlman ap travay sou eleman ki entrain. Nan jQuery, li ta . Val, pa. Valè. Se konsa, mwen pral jwenn nan yon ti egzanp ki demontre tout bagay sa a nan konbinezon nan yon dezyèm fwa. Men mwen panse ke sa a se sèvi yon ti kras brib fè sans nan moun twò lwen. Vle chanje HTML a, rele metòd la HTML. Wi. ODYANS: Èske ou ka eksplike metòd la ankò? JOSEPH Ong: Se konsa, yon metòd se jis yon fonksyon ki fè pati yon sèl, nan ka sa ka, youn nan eleman Dom sa yo, paske ou wè m ' chwazi eleman a an premye. Aktyèlman, kite m 'sèvi ak sourit la. Mwen chwazi eleman a an premye. Lè sa a, mwen te rele HTML sa a fonksyone ke li te fè. Epi paske fonksyon sa a fè pati bagay sa a, nou rele li yon metòd. Se jis yon non anpenpan pou li. Di ke ankò. Se konsa, sonje, nou chwazi eleman ki kounye a. Apre sa, nou te mete l 'anndan varyab la eleman. Kòrèk? Se konsa, lè nou vle chanje HTML a sou andedan, paske li te Bob anvan, ou vle chanje tèks sa a Milo. Se konsa, nou rele HTML. Epi nou di li sa ki HTML a anndan ki eleman yo ta dwe kounye a. Se konsa, li chanje li nan Milo, paske mwen te li Milo. ODYANS: Se konsa, yo ap travay ansanm. [Fèbl] JOSEPH Ong: Yeah, yeah. Yo ap travay ansanm. Se konsa, youn nan yo chwazi eleman a an premye. Apre sa, yonn nan dezyèm fè yon bagay yo li. Wi. ODYANS: [fèbl]. Si metòd sa a se diferan de nan HTML ou gen metòd la egal vrè. JOSEPH Ong: Yeah. Sa se yon metòd diferan. Sa se yon metòd diferan. Apre sa, nou ka kouvri ki nan jis yon dezyèm lè nou ale nan yon egzanp. Mwen vle asire nou ke nou pi vit paske nou ap kouri soti nan tan. Men, nou te kouri fè wout apre yon sèten tan kounye a. OK. Fre. Se konsa, si ou vle ajoute yon klas, gen nan tou yon metòd klas ajoute. Sa a se jis yon egzanp nan sa ki ou kapab fè avèk jQuery. Ki jis ajoute yon klas la. Si ou vle retire li, ou ka rele retire. Se jis yon lòt bagay ou ka fè. Se konsa, plis egzanp sou sa ou kapab fè. Se konsa, mwen ka jis mete l 'nan tèt la tankou sa a? Pi piti retire. Si mwen jis egzekite ke JavaScript nan tèt la nan dosye mwen, sa a ap travay? Dwat. Paske mitan pa egziste ankò. Se konsa, sa a se pa ale nan travay. Lòd ekzekisyon. Li ale sou tèt la an premye. Ki sa? ODYANS: pi piti pa egziste ankò? JOSEPH Ong: Yeah. Pi piti pa egziste ankò. Egzakteman. ODYANS: Ou te di presegondè. JOSEPH Ong: M regrèt. Pi piti pa egziste ankò. Epi bagay la lòt se mwen pa gen enkli jQuery la ranpli mande script src. Se konsa, ki pa nan ale nan travay. Aktyèlman, mwen pa t 'fè sa nan pwochen glise la, ki se sipoze ranje ki swa. Men, fason nou fè sa se JavaScript se evènman kondwi. Se konsa, sa nou fè se nou itilize yon evènman Handler fè sa-a rive. Se poutèt sa mwen chwazi dokiman an mete an premye. Mwen di, OK, lè dokiman an se pare, kite m 'kouri nan yon fonksyon. Se konsa, sa a, se tout sa ki sentaks vle di. Mwen chwazi dokiman an. Koulye a, lè dokiman an se pare, kouri fonksyon an. Se konsa, sou isit la lè dokiman an se pare, ki vle di tout HTML an gen chaje, lè sa a mwen kouri fonksyon an ki elimine ke eleman. Se konsa, koulye a, lè mwen kouri fonksyon sa a ke mwen te pase nan pare, mwen se garanti ke tout HTML la sou la paj ki pral egziste an premye. Wi. Kesyon? ODYANS: Ki sa ki mo kle nan evènman nan fonksyon an? JOSEPH Ong: Se konsa, ki mo kle evènman nan la fonksyon se jis yon paramèt ki vin te pase nan fonksyon an pou nenpòt ki evènman. Se jis nan yon bagay ki ou resevwa pou gratis. Lè w ap itilize pòtè kle nan pset8, ke evènman t 'kapab di ou, pou egzanp, ki kle ou bourade sou. Nan ka sa a, pou yon evènman pare, li la aktyèlman pa super itil. Men, pou yon kle evènman desann, li pi ki itil, paske ou jwenn yo konnen ki kle ou bourade pa au kle Kòd la ki objè evènman. Kòrèk? ki fè sans? OK. Wi. Kesyon? ODYANS: Se konsa, ou ka mete an tag script pi ba desann? JOSEPH Ong: Se konsa, yeah. Ou te kapab mete script la tag pi ba desann. Men, Lè sa a, li jis vin reyèlman sal. Lèfini, nou renmen santralize tout nan kòd nou yo nan yon sèl kote. Lè sa a pral pèmèt nou fè li. Sonje pi bonè m 'te di gen yon joli fason yo asire ke eleman yo nan paj la anvan ou egzekite Kòd? Apre sa, sa a se jis yon fason bèl ou ta akonpli ki. ODYANS: [fèbl]. JOSEPH Ong: Yeah. Ou ta toujou gen, dwa? Paske sonje, ou mete nan pote nan tèt yo nan paj la. Se konsa, li pral al touye premye anvan ou jwenn anba a nan paj la. OK. Se konsa, ou ka ajoute tou yon diferan di ki kalite evènman Handler. Yon sèl sa a jis trete klik. Lè m 'klike sou pi piti, Lè sa a, li pral pòp moute ak yon alèt. Sa a se jis yon lòt di ki kalite evènman. Kòm yo te opoze ak evènman an pare, ou koulye a sèvi ak evènman an klike sou lè ou resevwa klik sou yon eleman. Se konsa, nan ka sa a, sonje, klike la se Handler tache ak pi piti. Se konsa, li sèlman k ap pase lè Mwen klike sou pi piti. Ak nan youn nan lòt, evènman an pare te atache a dokiman an. Se konsa, li tann pou dokiman an yo dwe pare. Fè sans? Mwen panse ke mwen kapab deplase sou. Wi. Kesyon? ODYANS: [fèbl]. nan ka sa a ou itilize [fèbl]. JOSEPH Ong: Oh, wi, paske se nan sa a ka, mwen gen pou ret tann pou pi piti a eleman a parèt sou ekran an premye anvan m 'ka tache yon Handler klike sou li, ki se poutèt sa mwen mete l 'anndan nan yon dokiman pare. OK. Ak pwochen, kidonk sa a se yon gwo egzanp sou kijan ou ta konbine tout bagay. Sa a se jis yon egzanp fòm validation ou te wè nan konferans. Se konsa, pran li etap pa etap kòm ou ale nan sa a. Apre sa, li pral totalman OK. Jis li li l 'depi anwo jouk anba. Mwen gen yon fòm nan pati anba a. Lè dokiman an se pare, mwen mete yon soumèt Handler nan fòm la, sa yo ki lè m 'soumèt fòm lan, mwen jwenn valè yo andedan chak nan sa yo entrain. Apre sa, mwen tcheke si li nan vid. Si li nan vid, mwen retounen fo, paske Mwen pa vle soumèt fòm la, paske fòm lan ki mal. Si modpas la se vid oswa li nan mwens pase uit karaktè, mwen pa soumèt fòm lan, paske se sa tou sa ki mal. Ak fo la retounen jis anpeche fòm lan soti nan soumèt ak ale nan yon nouvo paj. Ak èspere ke, sa a fè sans. Mwen panse ke ou nèg ta dwe mache nan etap Kòd sa a pa etap sou kont ou. Apre sa, yon fwa ou konprann ki sa chwazi a eleman ak fè bagay nan li aktyèlman explik, sa a pral fè yon anpil nan sans nan ou. Wi? ODYANS: Ki sa a Non = non itilizatè vle di? JOSEPH Ong: Se konsa, Non = non itilizatè a ak Non = modpas jis vle di gade nan la atribi nan tou sa w ap chwazi. Lè sa a, ki gen matche ak. Se konsa, nou antre nan enskripsyon an. Lè sa a, nou gade nan tout entrain ak enskripsyon an. Lè sa a, nou chwazi youn kote non an nan atribi ki egal a non itilizatè. Se konsa, ki premye seleksyon sèlman chwazi D 'nan non itilizatè. Epi ki dezyèm seleksyon sèlman chwazi modpas nan yon sèl, paske moun gen atribi non yo mete kòm sa yo ap sipoze ye. Kesyon? ODYANS: Nan soumèt, ki jan fè nan pati anba rezoud yon pati nan tèt? JOSEPH Ong: Se konsa, sa a, se paske nan Handler a evènman. Se konsa, nou ap tann pou yon evènman soumèt ki vin revoke nan fòm nan. Epi sa a, tout sa ki soumèt. Poukisa pou m 'rele soumèt moute a? Li di, lè se soumèt fòm nan, Mwen jwenn yon evènman soumèt. Se konsa, kite m 'jis segman aks dèz sa a epi Lè sa a, kouri Kòd sa a pito. Wi? ODYANS: Poukisa ou gen gen evènman fonksyon? Poukisa nou pa kapab ou jis [fèbl]? JOSEPH Ong: Paske nan JavaScript, ou gen deklare fonksyon yo. Se jis ki jan li fonksyone nan JavaScript. Ou te vle di li pral nan kouri yon fonksyon. Se konsa, w ap di li ke w ap tann yon fonksyon isit la olye pou yo jis aparèy òtopedik Curly. ODYANS: Apre sa, fonksyon an se tou sa sa a? JOSEPH Ong: Yeah. Fonksyon an se tou sa ki andedan aparèy òtopedik yo Curly apre ki mo kle fonksyon. Wi? ODYANS: [fèbl]. JOSEPH Ong: Pou soumèt? ODYANS: Non, pou fonksyon san yo pa evènman an. JOSEPH Ong: Yeah. Se konsa, san yo pa evènman an, ou ka gen sa. Si ou pa bezwen evènman an, Lè sa a, ou ka jis oblije li. Men, si ou fè sa, Lè sa a, ou jis mete l 'la. Wi. Quick kesyon? ODYANS: [fèbl]. JOSEPH Ong: Yeah. Paske sa ou bezwen fè sa, an document.ready jis di rete tann pou tout HTML ki nan paj an chaj an premye. Apre sa, anjeneral, ou ta vle eleman ou nan plas ou anvan ou kouri nenpòt kòd. Tout dwa. Nou gen pou li ale nan Ajax. Nou pa gen anpil tan. Se konsa, Les ak inconvénients. JavaScript se pi fasil eseye ekri avèk jQuery. Men, jQuery se kalite dousman. Se tankou PHP se pi dousman pase C, paske li te entèprete. Apre sa, jQuery se yon ti jan pi dousman pase JavaScript, paske li fè sa yon anpil nan bagay sa yo anba kapo a. Se konsa, si w ap lè l sèvi avèk jQuery, li nan jis yon ti jan pi dousman pase JavaScript, menm si li ba ou bèl distenksyon. E finalman, Ajax. Se konsa, lwen ak Ajax, ou pa gen pou wè Ajax an tèm de pset7 ankò, paske lè ou fè sa, ou soumèt yon fòm quote. Li charj yon nouvo paj. Se konsa, ou jwenn sa a gwo flash blan nan paj la pandan y ap ki dezyèm charj paj, kòrèk? Li ta reyèlman bon si ou pa t 'gen flash sa a. Menm jan ak Facebook, si ou jis woulo liv anba a, li ajoute nouvo kontni san yo pa entérésan paj la tout antye. Se konsa, yon bagay tankou sa ta dwe nice. Sa a se JavaScript Kòd ki sou bò gòch. Ou jwenn ki sa ki andedan nan ki D '. Ou jwenn enfòmasyon sou a stock soti nan Yahoo! Lè sa a, ou fè yon gwo kòd la di, OK, sa a se mesaj la mwen vle yo montre sou ekran an. Lè sa a, ou mete ke mesaj andedan nan kèk eleman HTML ki vin parèt sou ekran an. Se konsa, sa a, se tout sa ki k ap pase isit la. Se konsa, fondamantalman, paske sa a se tout JavaScript ak ou pa bezwen kouri ankò PHP, sa a pral asire w ke ki paj la pa rafrechi. Se konsa, sa a se jis yon lide abstrè ke mwen di la a pou kounye a. Lide a abstrè se ke si ou fè li tout moun ki nan JavaScript, ou pa gen yon paj actualiser. Men, ki jan ou aktyèlman fè sa? Oke, aktyèlman, se pou yo pale sou yon pwoblèm ak sa a an premye. Yon pwoblèm se nan JavaScript, ekzekisyon se synchronous. Se konsa, ou oblije rete tann pou yon liy fini anvan ou egzekite liy kap vini an. Ak sa ki si mwen pral nan men Yahoo!, ak serveurs yo se reyèlman dousman, ak li pran yo twa segonn ban m 'tounen ke enfòmasyon stock? Lè m 'frape ke liy pri, si nan ekzekisyon se synchronous, kòm li se pa default, ki sa ki li jis pral fè se navigatè ou a ki pral nòmal pou twa segond. Epi ou pa ap ale nan kapab fè anyen pandan y ap li vin ke done. Li yo pral nan frizè. Epi sa a, move. Ou pa vle yon itilizatè gen yon paj wèb nan frizè. Kòrèk? Se jis move. Tout moun dakò? Si w ap Navigasyon Facebook ak li jele, epi ou pa ka fè anyen, ou jwenn vrèman fristre. Se konsa, solisyon an se nou fè yon bagay asenkron pito. Se konsa, tout bagay sa a asenkron di se, mwen pral mande sa a URL pou kèk done. Lè sa a, mwen pral kenbe prale. Mwen jis ale nan kenbe egzekite tou sa kòd ki te apre sa. Lè sa a, chak fwa ke done se pare, Lè sa a, mwen pral travay sou li. Sa a tout li se di. ODYANS: Ajax jis fè Kòd asenkron? JOSEPH Ong: Se yon asenkron fason pou done Chairman. Se konsa, premye bagay la sou Ajax se li pèmèt m 'jwenn done soti nan yon sit entènèt ekstèn. Epi bagay la se dezyèm li fè asire w ke ki paj m 'lan pa nòmal pandan y ap mwen se atiran ki done. Sa a pati nan asenkron nan li. Paske li ale nan yon lòt kote, paske mwen di mwen kenbe ale sou pandan y ap li nan atiran ke done, ki fè li asenkron. Mwen kenbe egzekite. Se konsa, kenbe ki asenkron lide nan tèt li. Apre sa, mwen pral montre w ki sa diferans lan se. Vèsyon an synchronous se sou bò gòch la. Vèsyon an asenkron se sou bò dwat. Gade nan chif yo wè ki etap koresponn ak sa ki ègzekutra nan chak liy. Plis pase a, alèt la montre moute an premye. Paske ap resevwa enfòmasyon sou stock soti nan Yahoo! pran twa segond, li depa pou twa segond. Lè sa a, li Alerts pri a apre sa yo twa segond. Se konsa, koulye a, ki montre alèt moute nan tan sa a - twa segond pous Lè sa a, li Alerts pa apre sa. Se konsa, li jis ale etap pa etap. Se tankou sa ou mesye ta aksepte, kòrèk? Avèk asenkron ekzekisyon, ou alète an premye. Lè sa a, ou ale yo ale nan URL sa a. Apre sa, nou di: Mwen pral jis mande pou enfòmasyon ki la. Lè sa a, mwen pral travay sou li pita. Se konsa, li imedyatman ègzekutra la pwochen liy apre mwen fin fè ki asenkron mande sa. Se konsa, yon 0.001 segonn, ou wè alèt hi. Egzekite ke fonksyon, alèt babay. Epi paske mwen te fè yon pwomès ke mwen ta travay sou done yo pita, sa ki k ap pase se lè sa done tounen twa segond apre, Lè sa a, mwen kouri ki fonksyon ke mwen gen plis pase la. Wi? ODYANS: Èske ou ta kapab presize oswa klarifye sa ki Ajax vle di? JOSEPH Ong: Se konsa, Ajax se yon fason ke si mwen bezwen done lè mwen se sou yon sit entènèt ak mwen pa vle rafrechi paj la, Lè sa a, Mwen sèvi ak teknoloji sa a yo rele Ajax. Sa esansyèlman jis vle di, ale chache done ki sòti nan yon lòt sit entènèt. Apre sa, fè l 'nan yon fason ki jis pa nòmal paj entènèt mwen an. ODYANS: Se konsa, se ke yon nannan yon pati nan JavaScript oswa jQuery? JOSEPH Ong: Se konsa, yon moun te ekri yon fason yo fè sa a nan JavaScript yon bon bout tan de sa. Nan yon pwen, li pa t egziste. Se konsa, yon moun envante teknik sa a yo ki pèmèt moun ki pou mande pou done sa a nan mòd sa a. Apre sa, yo te ekri kèk bagay fè li pou ou. Apre sa, jQuery jis ba ou sa a trè bèl fason yo fè l ' ak sa a $. jwenn fonksyon. kesyon? Mwen ka reponn kesyon sou Ajax apre sa tou. Mwen pral isit la. Se konsa, li kite a nou chache done san yo pa entérésan paj la. Apre sa, li kite a nou fè sa nan yon fason asenkron ki pa jele paj la. Twò lontan, pa t 'li si sa eksplikasyon te twò lontan pou ou. Se konsa, finalman, kwa-sit scripting atak. Nou te wè sa a ak Zamyla. Si ou nan yon moun baz done m 'gen non sa a, ki se sa a tag script, epi mwen gen kèk kòd nan paj mwen ke simagri soti non moun nan nan yon ranje, oubyen mwen gen kèk kòd JavaScript ki foure Non sa a nan paj la, sa HTML vin pwodui? Bon, mwen enprime soti tag nan HTML. Mwen ekri ak lèt ​​detache soti tout sa yo Tags. Mwen jwenn nan pati a ki kote mwen se enprime soti ak zanmi m 'yo. Mwen ekri ak lèt ​​detache Lauren deyò. Li ekri ak lèt ​​detache Milo deyò. Lè sa a, non mwen nan baz done a se pòs script unflattering Facebook estati. Paske mwen antre sa a nan paj la paske li sanble JavaScript, lè paj sa a vin voye nan itilizatè a, li vin egzekite kòm JavaScript. Se konsa, sa a se sa nou rele yon kwa-sit scripting atak. Yon moun mete move enfòmasyon ki nan baz done ou ki ta ka koresponn ak kèk fisèl plis oswa kèk fisèl JavaScript. Men, lè li vin enprime soti nan la paj nan mòd sa a, Lè sa a, sa ki k ap pase se ke vin move Kòd egzekite ke mwen pa t 'gen entansyon pou li jwenn egzekite. Epi sa a, tout yon kwa-site atak scripting se. Apre sa, wout la ou jwenn alantou sa a se tankou Zamyla te di. Ou jis vlope bagay sa yo nan HTML charaktèr espesyal. Lè sa a HTML charaktèr espesyal se yon PHP fonksyon ki pral anpeche sa a sòt de bagay sa a soti nan pase ou si ou gen yon move fisèl nan baz done ou. Li jis sove li, se konsa ke li pa jwenn entèprete kòm HTML. Li ranplase parantèz yo ti kras ak sa nou rele antite. Se konsa nou janbe sa a nan konferans tou. Se konsa, mwen panse ke ou nèg ta dwe gen yon men bon sou sa. Kesyon? Wi. ODYANS: Se konsa, kouman ta [fèbl] a? JOSEPH Ong: Di sa ankò. ODYANS: Ki jan ta monitè kè bebe a - JOSEPH Ong: Dwa. Se konsa, ou gen yon bagay ki di, lè Mwen enskri, kalite nan non mwen. Mwen jis tape nan ki jaden, non mwen se stript pòs unflattering Facebook sitiyasyon fèmen script tag. Apre sa, ki jis vin mete nan la baz done, paske mwen pa ka di yon moun nan mond lan pa gen yon Non ak yon flèch bò gòch nan li oswa nan script mo nan li. Sa pa vrèman fè sans. Se konsa, mwen jis gen asire w ke mwen dezenfekte bagay la anvan m 'enprime li soti nan paj la. ODYANS: Se konsa, kat yo espesyal HTML anpeche etikèt yo script? JOSEPH Ong: Yeah. Se konsa, li pa anpeche etikèt yo script. Li jis fè asire w ke nan script Tags pa jwenn entèprete kòm HTML oswa - yeah. Li jis vini leve kòm sa li aktyèlman se. Tout dwa. Se konsa, sa ki te revize a egzamen. Fre. [Aplodisman]