[MIZIK jwe] Oratè 1: Oke, isit la nou yo, P dènye seri a nan CS50. Felisite nou soti nan gen vin twò lwen depi premye alo ou mond ak enprime soti piramid pou Mario. Ou te fè yon sit entènèt semèn pase a. Apre sa, nou pral yo dwe fè yon lòt semèn sa a, yon sèl ki pèmèt ou kondwi otou kanpis la Harvard, davwa moute anplwaye CS50, ak pote yo tounen nan yo kay rezidansyèl yo. Koulye a, semèn pase a nou te travay nan PHP, yon sèvè lang bò. Pou P sa a seri, nou resevwa prezante JavaScript, ki se yon kliyan lang bò. Se konsa, kite a pran yon gade nan kèk nan la Kòd distribisyon ki nan bay ou pou P sa a seri egzèsis la. Nan dosye a JavaScript, pral gen yon pakèt moun sou JavaScript dosye. Genyen buildings.js, ki gen yon etalaj nan bilding nan Harvard lakou lekòl la, ak enfòmasyon yo ak pozisyon. Houses.js se yon etalaj de Harvard kay rezidansyèl, ak yo latitid ak lonjitud. Passengers.js gen yon etalaj de pasaje - anplwaye lekòl ki CS50 - ki ou pral pote tounen nan kay rezidansyèl yo. Math3D.js, ki gen yon anpil nan fonksyon fè ak mouvman an. Si w ap matematik vle, Lè sa a, mwen akeyi ou pran yon gade. Men, ou pa bezwen konprann tout bagay nan la. Shuttle.js, ki boule ak mouvman navèt la. Apre sa, index.html se paj la kay kote tout bagay sa yo rive, reyèlman, kote la itilizatè ki kominike avèk sit la. Service.css se fèy style CSS, ki, nan adisyon a Twitter a Bibliyotèk demaraj, kontwole ki jan index.html sanble. Lè sa a, nou menm tou nou gen service.js, ki gen fonksyon sèvis pou navèt la. Apre sa, Isit la nan kote w ap ale nan dwe ranpli nan kèk nan la dos. Koulye a, kite a pran yon gade nan objè ak ranje asosyatif nan JavaScript, ki pou tout entansyon ak objektif yo ka ranplase. Si m 'te vle fè yon objè yon varyab rele yon ralonj, mwen ta deklare li. Ak andedan sa yo aparèy òtopedik Curly mwen ta presize nwayo a se goumen tankou towo mawon. Bwa a se Cherry. Apre sa, longè a se 13. Koulye a, mwen kapab tou jwenn aksè nan valè nan objè lè l sèvi avèk asosyatif notasyon etalaj. Nwayo endèks Se konsa, ralonj, mwen ka mete ki egal a goumen tankou towo mawon, oswa tcheke sa a, si m 'bezwen. Oswa mwen kapab itilize operatè a dot. Bwa ralonj dot egal Cherry, ak sou sa, ak pou fè. Se konsa, ou wè ke ranje asosyatif ak objè ki nan JavaScript yo ale nan dwe ranplase, epi li pral vini nan byen sou la men. Lè sa a, nou wè yon etalaj nan bilding nan buildings.js. Yon fwa ankò, yon etalaj de objè yo. Si m 'te vle fè yon etalaj de pi bon an bilding sou lakou lekòl la Harvard, Lè sa a, Mwen ta fè l 'jan sa a. Lè l sèvi avèk notasyon sa a objè, kote Mwen sere rasin, non, adrès la, latitid, ak lonjitid pou chak yon sèl bilding objè. Se pou yo byen vit pale sou varyab nan JavaScript. Menm jan ak PHP, JavaScript varyab yo chetif oswa blesi tape. Pou kreye yon varyab lokal yo, ou prefiks non an varyab ak V-A-R la, var. Koulye a, nan JavaScript, fonksyon pral limite sijè ki abòde lan varyab. Se konsa, si ou gen yon varyab lokal ki nan yon fonksyon, lè sa a lòt fonksyon pa ka jwenn aksè li. Men, kontrèman ak C, pasan ak kondisyon pa fè sa limite sijè ki abòde lan yon varyab. Se konsa, menm si ou deklare li andedan nan yon kondisyon, fonksyon an antye ap gen aksè a li. Koulye a, san yo pa var, varyab la yo pral mondyal la. Se konsa, si ou jis deklare non ak bay yon valè, Lè sa a, varyab sa a pral gen yon varyab mondyal nan JavaScript. Koulye a, nan kay, nou gen yon asosyatif etalaj de objè di ki kalite kay, kote chak kay se jis yon latitid ak yon lonjitid. Lè sa a, nou gen pasaje yo etalaj, ki se yon etalaj nan kalite objè pasaje. Se konsa, chak pasaje yo gen yon non itilizatè, yon non, ak yon kay. Remake mwen wè nan kalite pasaje yo, ki reyèlman jis vle di ke chak objè gen nan menm valè kle pè. Se konsa, chak objè nan kalite pasaje yo gen yon non itilizatè, yon non, ak yon kay. Se konsa, sa nou bezwen fè pou P seri a? Oke, nou bezwen pèmèt itilizatè yo chwazi moute manm pèsonèl la, yo montre tout anplwaye lekòl ki ki kounye a nan navèt nou an, epi lage yo ale. Lè sa a, nou pral tou pale sou siplemantè karakteristik ki kapab aplike pou navèt P gwoup la. Men, se pou nou pale sou pickup an premye. Ap fè fas yo nan anplwaye CS50 yo te plante tout lòt peyi sou lakou lekòl la, kote chak se figi aplike kòm yon mak kote sou tè a 3D, epi kòm yon makè sou kat jeyografik la 2D. Se konsa, lè itilizatè a klik pickup la bouton, nou vle ajoute ki tou pre pasaje yo navèt la. Apre sa, nou menm tou nou vle retire plas yo make soti nan mond lan, epi retire yo makè nan kat la, ki endike ke yo ap nan navèt nou an kounye a. Se konsa, ki jan nou detekte si pasaje se nan ran de navèt nou an? Oke, distans la fonksyon - Se konsa, navèt dot distans, pase nan latitid ak lonjitid, yo pral kalkile distans la soti nan aktyèl la pozisyon nan navèt la a pwen ke ou presize ak ki bay latitid ak lonjitid. Se konsa, ou ka itilize sa a kalkile nan Distans soti nan navèt la a pasaje. Men, ki jan ou konnen ki kote pasaje yo yo ye? Oke, sa a, se kote nou pral gen modifye fonksyon an alimenté. Peple kote tout nan manm yo anplwaye ak pasaje yo nan mond lan, ak nan kat jeyografik la, men li pa magazen kote yo. Se konsa, petèt ou ka magazen yo mete mak ak makè nan kèk etalaj mondyal la. Koulye a, gen deja se yon etalaj mondyal estoke enfòmasyon ki soti nan pasaje. Boutik sa yo pasaje etalaj chak Non pasaje a ak kay yo. Se konsa, petèt ou ka ajoute yon paramèt kèk gen yo objè yo pasaje. Pou ede nou detekte tout pasaje yo nan ranje nan navèt nou an, se pou yo bouk nan tout nan pasaje yo nan etalaj la pasaje. A pou bouk nan JavaScript ta ka gade yon bagay tankou sa a, sanble anpil ak sa yo pou bouk nan C. oubyen nou ka sèvi ak yon altènatif pou estrikti bouk. Pou var mwen an pozisyon, kote mwen ap toujou gen endèks la. Men, ou pa bezwen presize longè a etalaj dot kondisyon, e mwen plis plis. Kote chak pasaje a se yo bay nan mak plas yo. Men, make la kote se pa nan latitid ak lonjitid la. Nou gen jwenn aksè nan paramèt sa yo pa ap resevwa jeyometri a, lè l sèvi avèk Pran Jewometri sou make la kote. Lè sa a, yon fwa nou gen jeyometri a, ap resevwa swa latitid la oswa nan lonjitid, lè l sèvi avèk fonksyon sa yo. Se konsa, kounye a nou konnen ki jan yo detekte si wi ou non pasaje yo nan lespas ran de navèt nou an. Yon fwa nou gen moun ki pasaje, nou pral vle ajoute nenpòt ki pasaje ki nan ki pòte. Nou vle pou pèmèt yo hop sou li a, ak pran yon chèz sou navèt nou an, men se sèlman si nou gen ase plas pou yo. Etalaj la plas navèt dot pral endike si plas yo vid, oswa ki moun ki la nan ke chèz. Se konsa, si yon plas vid, Lè sa a, ki chèz pral nil. Se konsa, repňte sou etalaj la plas, tcheke pou plas vid, sere pasaje nan sa yo chèz jiskaske ou pa gen okenn plas plis vid. Apre sa, malerezman, nenpòt ki lòt pasaje ap gen pou ret tann pou la pwochen fwa navèt la vini alantou. Yon fwa yo jwenn sou navèt la, nou pral vle yo retire mak plas yo, ki se foto yo nan mond lan 3D. Si mwen te vle retire yon kote ki make p, Lè sa a, mwen ta jwenn tout nan karakteristik yo ki soti nan tè m 'yo, soti sou latè, Google, ak Lè sa a, retire kote sa a espesifik make lè l sèvi avèk fonksyon an removeChild. Lè sa a, Finalman, se pou yo retire makè a, Meksiko an sou kat jeyografik la 2d pou nenpòt ki pasaje yo ke nou ap davwa ke yo pran. Pou retire yon makè, m, Lè sa a, mwen pral jis egzekite m dot setMap nil. Fè sa pou nenpòt ki pasaje nan ranje, ak ou te fini pickup.