JavaScript programmeerimine keel: teave algajatele. Mida sa pead teadma iga JavaScripti arendaja vastutab JavaScripti programmeerija eest

Kohandatud tõlke artikli "Full-Stack JavaScript kuue nädala jooksul: õppekava juhend"

Veebiarendus on algaja programmeerijate üks lihtsamaid ja populaarsemaid suuniseid. Töö jaoks üsna keegi teksti redaktor Ja brauser, ei ole vaja uurida algoritme kõrgtasemel, tulemus iga programmi samm programmi on visuaalselt - üldiselt palju kasu. Peamised oskused veebiarenduse kontekstis peetakse teadmiste JavaScripti.

Nüüd arendab JavaScript väga kiiresti ja seetõttu on keele õppimine lihtne segadusse saada. Pakume teile õppekava mugava struktuuriga, mis hõlmab kõiki vajalikke aspekte JavaScript ja sellega seotud tehnoloogiate.

Miks JavaScript?

Väärib märkimist keele avatuse - ettevõtted, tavaliselt üksteisega konkureerivad, koostööd JavaScripti arendamiseks. Keel on väga paindlik ja sobib nii objektorienteeritud kui funktsionaalse lähenemisviisi toetajatele. Suur hulk raamatukogusid ja raamistikke võimaldab teil hõlpsasti lahendada mis tahes liiki ülesandeid ja Node.js Server platvorm võimaldab kasutada keelt mitte ainult brauseris, vaid ka konsoolis. Võite isegi kirjutada lauaarvutid ja mobiilsed rakendused: Esiteks - elektronide raamistikuga ja teine \u200b\u200bon naatööriskirjel või reageerivad kohalikule.

Põhitõed

Kõigepealt on vaja uurida JavaScripti, veebiarenduse ja programmeerimise põhikontseptsioone tervikuna:

  • objektile orienteeritud JS - disainerid ja tehased, pärand;
  • funktsionaalsed JS - kõrgema järjekorra funktsioonid, sulgurid, rekursioon;
  • jasmiini katse spetsifikatsioon;
  • hTML-i, CSSi ja JQuery põhitõdesid.

Git.

GIT on tööriist, mida vajate arendajatele, nii et see vajab võimalikult varakult. Siin on põhioskused, mida peate omama:

  • failide loomine ja liikumine kataloogides;
  • initsialiseerimine ja kohustused git;
  • tasahoidlate seadmine GitHubis.

Algoritmid ja andmestruktuurid

Siis tasub uurida algoritme (eelkõige algoritmide keerukuse mõiste), samuti põhiandmestruktuurid: ühendatud nimekirjad, järjekorrad, korstnad, binaarsed otsingupuud ja räsilaud. See aitab teil.

Toetama

Node.js.

10 aastat tagasi saaks JavaScripti kasutada ainult freelide arendamiseks. Nüüd tänu Node.js'ile ei piirdu juhtum ühe "ees". Sõlme on lihtsalt keskkond JS-koodi täitmiseks serveri poolel, nii et te ei pea uut süntaksi uurima, vaid peate faile importima ja ekspordite importima ja ekspordite, jagage moodulite koodi ja kasutage NPM-paketi haldajat.

Serverid, http, Express.js

Pärast sõlme uurimist on vaja jätkata taustate arendamise ja servereid ja marsruutimist sortida. Teil on võimalik alustada sadamatest ja protokollidest, rõhuasetusega HTTP-le ja seejärel võtta Express-Node'i raamatukogu taotluste tegemiseks.

Asünkroonne JavaScript.

Andmebaasid, skeemid, mudelid ja ORM

Andmebaasid on veebiarenduse üks olulisemaid elemente. Kui teie taotlus peab alla laadima või salvestatavaid andmeid, mis ei kaota lehe uuendamisel, peab andmebaasi kasutama. On vaja õppida eristada suhtelisi ja mitte-relatsioonilisi andmebaase ning mõista ühendused. Siis tutvuda erinevate. Võime töötada ORM-ga ei ole liiga üleliigne.

Esiots

HTML ja CSS.

HTML ja CSS on aluse aluseks iga veebiarendaja. Te ei pea neid ideaalselt tundma, kuid peate neid mõistma. Võite uurida ka populaarset raamatukogu (näiteks bootstrap) ja CSS-i preprocessor nagu Sass - see aitab teha CSS-i sarnast tavalise koodiga. HTML-i töö lihtsustamiseks saate valida ühe populaarsemad templateizers, näiteks mops.

jquery ja manipuleerimise dom

Olles loonud lehe välimuse abi HTML-i Ja CSS, kasutate DOM-i juhtimiseks jquery raamatukogu. Paljud usuvad, et jquery on kasutu ja varsti asendatakse nurga ja reageerimisega, kuid see on hullutult populaarne ja seetõttu on seda väärt seda väärt. Lisaks ühel päeval satute olukorda, kus te ei ole ebamugav skoor reageerida mikroskoobi ja siis lihtne jquery jõuab päästmiseks.

Chrome'i arendaja tööriistad

See oleks unforgiable jagada tähelepanu kroomi tööriistu, mis annavad tohutu hulga võimalusi. Nendega saate uurida dom elemente, siluda konsooli kaudu, jälgige marsruute ja palju muud. Järgnevalt on kroomi konsooli mugavad omadused, mis lihtsustavad rutiinsete ülesannete täitmist.

Ajax

Kui soovite, et rakendus ei laadita lehekülgi pärast iga andmebaasi operatsiooni uuesti laadimist, vajate kindlasti Ajaxi - see saadab tausta asünkroonse HTTP taotlusi, vastuseid, millele on uuendatud ainult osa ekraanist. Te saate töötada AJAXiga JQuery abil, kasutades meetod.Ajax.

Programmeerimine ei ole lihtsalt võimalus teenida suurt raha ja mitte isegi täiesti vaimset tööd. See on võimalus mõista, mida maailma ümber seisneb, laguneb selle väikesteks osakesteks ja seejärel uuesti kokku panna, juhinduda oma loogika ja teadmiste järgi.

Programmeerimiskeeled on vaid vahend, millega inimene ehitab loodud süsteemides reegleid.

Internet on palju võimalusi, mille jaoks arestitud helge ja ettevõtlikud meeldivad. Loomulikult on veebiarendusel ka oma vahendid ideede rakendamiseks elus. Üks neist - keel javaScripti programmeerimine Seda arutatakse käesolevas artiklis:

Üldine informatsioon

Paljud inimesed, isegi ei ole seotud IT-sfääri, kuulnud sõna Java. Revolutsiooniline sõltumatu keel selle keele kohta, millele rakendused on aktiivselt kirjutavad mobiilsüsteemid. Seda töötas välja paljulubav päikeseettevõte, mis seejärel ületas "tiiba all" Oracle. Kuid ühel ega teisel äriühingul ei ole JavaScriptiga seotud midagi pistmist:

Alates Sun sellest võttis ainult loa kasutada osa nimi. Üllataval kombel ei ole JavaScript üldse mingit kindlust.

Veebirakenduste kirjutamisel kasutatakse JavaScripti programmeerimist kõige sagedamini. Kui lühidalt nimekiri põhijooned See keel tuleb valida järgmiselt:

  • Objektorienteeritud. Programmi täitmine on objektide koostoime;
  • Andmetüüpide toomine toimub automaatselt;
  • Funktsioonid on baasklasside objektid. See funktsioon muudab JavaScripti sarnane paljude funktsionaalsete programmeerimiskeelte, näiteks Lisp ja haskelliga;
  • Automaatne mälu puhastamine. Nn prügi kollektsioon muudab JavaScripti sarnane C # või Java.

Kui me räägime JavaScripti kasutamise olemusest, võimaldab see keel "taaselustada" fikseeritud leheküljed, kasutades selle käivitamise koodi abil ( nn skriptid). See tähendab, et saate teha analoogia karikatuuridega, kus HTML ja CSS on andestatud kangelased ja JavaScript teeb need liikumiseks.

Kui me räägime JavaScripti süntaksist, on järgmised omadused:

  • Register on oluline. Funktsioone FUNC () ja FUNC () nimed - täiesti erinevad;
  • Pärast operaatorite, on vaja panna punkt komaga;
  • Sisseehitatud esemed ja toimingud;
  • Ruumid ei võeta arvesse. Võite kasutada, kui palju tavad, samuti oma koodi korraldamiseks tõlkeid.

JavaScripti lihtsaim kood näeb välja selline:

Rakenduse ulatus

Selleks, et mõista, miks JavaScript on vaja ja kui palju on vaja uurida, mõned valdkonnad, kus seda rakendatakse see keel Programmeerimine.

  • Veebirakenduste arendamine. Tahad installida lihtsa loenduri, korraldada andmeedastuse vormide või panna saidi mäng? Siis teeb JavaScript selles küsimuses ustavat assistenti;
  • "Aktiivne osalemine" Ajaxis. See tehnoloogia on oluliselt kiirendatud rakendusi, kasutades andmevahetust serveriga "Taust" režiimis:
  • OS. Võib-olla keegi ei teadnud, kuid Windows, Linux ja Macil on brauseri konkurendid, lõviosa osa koodist, mis on kirjutatud JavaScripti;
  • Mobiilsed rakendused;
  • Koolituse ulatus. Iga programmeerija eriala ülikoolis hõlmab JavaScripti uuringut ühel või teisel viisil. See on tingitud asjaolust, et keel oli algselt välja töötatud mitte väga tugev programmeerijatele. JavaScripti õppetunnid on loogiliselt kootud aluse HTML-i kursusele, nii et areng läheb lihtsalt piisavalt.

Eelised ja puudused

Ärge arvake, et JavaScript on mingisugune imerohi kõigist probleemidest ja iga programmeerija naeratusega näol naudib seda keelt. Kõik maailmas on oma positiivsed ja negatiivsed küljed. Kõigepealt märgime puudusi.

  • Vajadus pakkuda rist-brauserit. Kuna JavaScript toimib Interneti-tehnoloogiana, peate selle ülemaailmse veebi kehtestama eeskirjadega. Koodeksi tuleb õigesti läbi viia kõikides või vähemalt kõige populaarsem brauserites;
  • Pärandsüsteem keeles põhjustab raskusi mõista, mis toimub. JavaScript rakendas prototüübidel põhinevat pärandit. Inimesed, kes õppisid teisi objektorienteeritud programmeerimiskeeli, on harjunud tavapäraselt " klass järeltulija pärsib vanemaklassist" Aga JavaScriptis tegelevad sellised asjad otseselt objektidega ja see ei sobi peaga;
  • Puudus standardraamatukogu. JavaScript ei paku võimalusi töötada failidega, I / O voogude ja teiste kasulike asjadega;
  • Süntaksi tervikuna raskendab mõistmist. Koodi ilu ei ole selgelt JavaScript Rustle, kuid nende programmeerijate peamine reegel on täheldatud: " Töötab? Ärge proovige!».

Nüüd tasub märkida mõningaid eeliseid

  • JavaScript pakub suur hulk võimalused lahendada mitmesuguseid ülesandeid. Keel paindlikkus võimaldab teil kasutada mitmeid programmeerimismalle seoses konkreetsete tingimustega. Leiutise meeles saab praeguse rõõmu;
  • JavaScripti populaarsus avab programmeerijale märkimisväärse hulga valmis raamatukogusid, mis võimaldab teil koodi kirjutamist oluliselt lihtsustada ja süntaksi ebatäiuslikkuse taseme lihtsustada;
  • Rakendamine paljudes valdkondades. Lai JavaScripti omadused annavad programmeerijatele võimaluse proovida end mitmesuguste rakenduste arendajana ja see on kindlasti huvipakkuv huvi kutsetegevuse vastu.

Ärge pööra tähelepanu asjaolule, et miinimumid osutusid rohkem kui eelised. JavaScript kindlalt kinnitatud oma niši ja seal ei ole kriitikat sealt sel hetkel Ei vali.

Neile, kes soovivad õppida

Raske ja kaugel on need, kes otsustasid JavaScripti põhjalikult õppida. Algajatele on põhilised soovitused, mille järel on nende koolituse oluliselt lihtsustada.

  • Esiteks HTML. On võimatu alustada midagi internetile ilma põhitõede põhitõeteta. Samuti on väga kasulikud kaskaadimisstiili lehed (CSS);
  • Kasutage uut kirjandust. Programmeerimine ei ole füüsika, mille seadused on hädavajalikud ja uued õpikud on vanad. IT-tehnoloogiad arenevad pidevalt ja neid ei tohiks tähelepanuta kasulike uuendustega;
  • Proovige kirjutada kõik programmi osad. Kui midagi ei ole üldse selgunud - saate laenata kellegi teise koodi, kuid ainult arusaam iseendale igale reale;
  • Silumine on teie ustav sõber. Kiiresti leida vigu - üks kõige olulisemad punktid programmeerimisel;
  • Ärge ignoreerige vormindamise norme. Loomulikult ei ole kood parem või halvem erineva arvu taante ja ruumide hulgast, kuid programmeerija lugemise ja mõistmise lihtsus on samuti oluline hetk. Allpool toodud kood? Väga raske tajutav, eriti kui te ei ole tema
  • Muutuja nimed peavad olema leksikaalsed väärtused. Kirjutamise protsessis lihtsad programmid See ei tundu üldse tähtis, kuid kui koodirullide arv rullide arv üle tuhande - kõik kuradid purunevad jalad;

JavaScript on pidevalt arenev keel, eriti nüüd, kui iga-aastane Eciori spetsifikatsioonide ajakava on loodud. Sellega seoses suureneb JavaScripti teadmiste tähtsus väljaspool jquery.

Muidugi, käesolevas artiklis me ei saa katta kogu teadmiste vajadust. Kindlasti on mul hetki, mida ma igatsen, võib-olla ma eksisin või meie arvamused teiega seotud teadmiste kogumi kohta erinevad.

Arvestades neid aspekte, alustame ...

Mis on Fizzzbiz-test

Fizzizzizizz - reeglina väike katse, mis on suunatud kogenematu arendajatele. Ma arvan, et sa oled üllatunud, kui palju JavaScripti arendajad ei tea, kuidas selliseid teste kirjutada.

Reeglina ei kanna selliseid teste suurt mõtet koormust. See on suunatud üksnes potentsiaalsete kandidaatide võimete kontrollimiseks.

Pea meeles, et tõenäosus, et teil palutakse täita samasuguse intervjuu katse on väga suur.

Näide klassikalisest Fizzzbizzi testist:

Selliste testide võimalused on piiramatud. Kui intervjuus, jooksin ma sellises testis, pärast mida ma pidin lahendama veel kaks võimalust.

For (var i \u003d 1; i<= 100; i++) { if (i % 15 == 0) { console.log("FizzBuzz"); } if (i % 3 == 0) { console.log("Fizz"); } if (i % 5 == 0) { console.log("Buzz"); } }

Erinevus \u003d\u003d ja \u003d\u003d\u003d

Te olete ilmselt tuttav mõlema võrdlusoperaatoriga. Kas sa tead, mida täpselt need operaatorid erinevad? Teie JavaScripti Linter nõuab teil rakendada operaator \u003d\u003d\u003d, mõtlesin, miks?

Ei võrrelda operandide tüüpe, selle asemel toob see kaasa ühe tüübi. Sellisel operatsioonil on negatiivne maine.

Konsool.log (24 \u003d\u003d "24"); // Tõsi.

Nagu näete, anti täisarvatüübile trükiväärtus 24 (ühe jutumärkidega). Muidugi, seal on olukordi, kus sa täpselt ja kas soovite, kuid kõige sagedamini, kas soovite juhtida võrdlusoperaatori manipuleeritud andmetüübid. Andmete võrdlemine operaatori abil \u003d\u003d ei ole soovitatav, enamik süsteeme JavaScripti stiili koodi kontrollimiseks näitab teid selle vea.

\u003d\u003d\u003d (range võrdlus) võrdleb andmetüüpe, ilma et neid ühendada ühele tüübile, st andmeid võrreldakse kui see on. Samuti, kuna tüüpi liiki ei osale selles operatsioonis, töötab see kiiremini. Nii et see operaator laiendab õigesti, on vaja sama tüüpi operaatorid.

Sama näide, kuid operaatoriga \u003d\u003d\u003d

Konsool.log (24 \u003d\u003d\u003d "24"); // vale

Vastuseks saame vale, sest erinevate liiki operandid, üks neist täisarvatüübi ja teise stringi.

Kuidas valida dom elemendid ilma täiendavate raamatukogudeta

Kindlasti olete tuttav, kuidas teha valim elemente kasutades jquery, kuid kas sa saad teha sama asja, kuid ilma selle raamatukogu abita?

Ma mõtlen mitte ainult konkreetse ID-ga või klasside komplektiga üksust, ma räägin väljendustest, et otsida punkte, kasutades JQuery.

DOM-i elementide otsimiseks on mitmeid natiivseid meetodeid, mis ei ole halvemad jquery'le. Samuti saame kasutada esimese lapse, viimase lapse tüübi valikuid jne.

Tutvuge mõne nende meetoditega

  • document.gelelementbyid on klassikaline meetod objektide leidmiseks nende ID-ga.
  • document.gegelementsbyclassName - elementide valimine klassi nimi
  • document.Queryselector on suurepärane meetod, mis praktiliselt täielikult asendab $ () valija Jquery, kuid see on juba kaasatud JavaScript. Ainus erinevus on see, et ta naaseb ainult esimese elemendi leidmise.
  • document.QuerySereCortall - eelmise meetodi analoog, kuid tagastab massiivi leitud üksuste hulga.
  • document.gelementsbyTagmeme - See meetod aitab teil valida elemendid sildi järgi. Kui teil on vaja leida kõik div üksused, siis vajate seda meetodit.

Samuti tahan märkida, et Päringu valiku ja QuerySealiCrosectorioli meetodeid ei tohi kasutada mitte ainult kogu dokumendile, vaid ka individuaalsetele esemetele, mis on, saate teha proovi ühe vanemaelemendi jooksul.

Mozilla dokumentatsioonis leiate nende meetodite täieliku kirjelduse.

Tõsta muutujate ja funktsioonide reklaame

JavaScript on huvitatud sellest, kuidas ta töötleb deklareeritud muutujaid ja funktsioone, tõstavad kõik need automaatselt ulatuse automaatselt. Seega saate neid viidata enne nende reklaame nähtavuse ulatusse (näiteks JavaScripti funktsioonidel on oma ulatus).

Seetõttu võtke koodi lugemise mugavuse huvides reegli, et muuta muutujad alati reguleerimisala alguses. Kui täpsustate skripti või funktsiooni ülaosas "kasutage ranget", siis lisava muutuja juurde pääsemisel saate vea.

Enamik koodi stiili kontrollimise vahendeid, nagu Jshint, näitab teil viga, kui te ei kasutanud "kasutage ranget", selle põhjal, kui proovite kirjutada hea koodi, siis te ei kasuta mingil juhul muutujaid reklaamile. Nagu alati, kui on küsimusi, võtke ühendust Mozilla dokumentatsiooniga, seal leiate alati teie probleemi täieliku ja põhjaliku kirjelduse.

Kasutades arendaja tööriistad brauseris

Kõige sagedamini kasutatakse selliseid vahendeid JavaScript skriptide silumiseks, kuid nende funktsionaalsus ei ole piiratud. Näiteks saate peatuspunkti kasutada skripti samm-sammult, sisestades iga funktsiooni samal ajal.

Need tööriistad pakuvad hädavajalikku abi, sest saate täielikult jälgida oma taotluse toimimist ja leida õnnetud piirkondi.

Olles õppinud rakendama selliste brauserite arendaja tööriistad kroomitud, Firefoxi ja Internet Exploreri viimaste versioonidena, saate oma skripti siluda, mõõta selle kiirust ja leida kohad, kus see on väärt töö algoritmi parandamist.

Ärge kunagi püüdke koodi pimedaks purustada, analüüsida seda kõigepealt alati arendaja tööriistade abil. Olemasolevate probleemide lahendus on kasutu veeta aega.

Konsooli meeskonnad

Palume arendajate tööriistade uuringus pöörduda järgmise elemendi poole. Reeglina pakuvad nad kõik konsooli, kus saate inhibeerida JavaScript-koodi.

Kindlasti olete juba tuttav selliste meeskondade konsoolina ja konsool.Error, kuid see ei piirdu konsooli funktsionaalsusega.

Ma tahan kohe tähelepanelikult märkida, et kõik loetletud käsud ei tööta kõikides brauserites. Püüan mainida ainult neid, kes töötavad kaasaegsetes brauserites. Sellegipoolest ütlen nõukogu, et enne nende rakendamist proovige ennast oma tegevust testida, nii et asjata ei haarata koodi.

  • console.log - kasutatakse sündmuste logi säilitamiseks. Toetab vormindamist.
  • konsool.error - koodi logimisvead. Ma kasutan seda käsku, kui vigu esinevad Ajax päringutes ja teiste potentsiaalselt ohtlike osade koodi. Meetod on sarnane eelmise, kuid see kuvab nimekirja korstnakõned.
  • console.Dir (objekt) - kuvab objekti vormindatud sisu. Kasutatud meetod on koodi silumise ajal väga kasulik.
  • console.Group (pealkiri) - Võimaldab luua logis nimega sõnumite grupp. Sel viisil saate grupeerida sõnumeid, näiteks nende koodi segmendis, kus need on tekkinud.
  • console.Groupcollpasted on eelmise käsu analoog ühes erandis. Nimelt näitab see sõnumeid volditud kujul.
  • console.Groupend - lõpetab eelnevalt loodud grupi.
  • konsool (etikett) - võimaldab teil jälgida saidi kiirust millisekundites. Meetod on kasulik potentsiaalselt keeruliste koodiosade võtmisel.
  • console Tundrend (märgis) on kontserni meetodi analoog, kuid see toimib konsooli suhtes seoses konsooliga ().
  • kopeeri (string) - konsooli kroom ja Firefox on meetod, mis võimaldab teil kopeerida lõikepuhvrisse stringi sisu. Väga kasulik meetod proovige seda rakendada.

Mis täpselt selles sisaldub

Esiteks on see suur probleemide allikas neile, kes ei mõista täielikult seda märksõna täpselt sisaldab. Ja eksida selles väga lihtne, kuna selle sisu sõltub täielikult koodi struktuurist.

Traditsioonilistes programmeerimiskeeltes sisaldab see viidet praegusele klassiobjektile. Aga kuna JavaScript pole traditsioonist kaugel traditsioonist, siis see muutuja viitab objekti vanema objektile.

Lihtsaim viis selle mõistmiseks on võtta see meetodi omanikule või vanemale. See viitab alati vanemale (vanematele), välja arvatud juhul, kui kõne kasutamisel kasutate või siduvad meetodid.

Järgmises näites viidatakse akendega:

Funktsioon Myfunction () (konsool.log (see \u003d\u003d\u003d aken); // tõsi) müfunktsioon ();

Kindlasti on teil küsimus, kuidas see on võrdne aknaga, kui me selle meetodi raames pöördume? Kui te teate sellele küsimusele vastust, siis suurepäraselt, muidu loetakse ja ma püüan selgitada.

Kui tunnistate funktsiooni sel viisil, on see kinnitatud globaalse akna objektile. Pea meeles, kas me ütlesime, et see viitab meetodi meetodile?

Selle väärtuse muutmine täielikult uuele objektile (mitte aken):

Funktsioon Myfunction () (konsool.log (see \u003d\u003d\u003d aken); // vale) Uus müfunktsioon ();

Koodeksi puhtuse toetajad kindlasti šokis. Me läheme lihtsalt jäämägi ülaosasse selliste näidetega. Nagu näete, ei ole see väärtus enam võrdne aknaga.

Miks see juhtus?

Lihtsaim selgitus - teises näites kasutasime märksõna uusi, need kõige rohkem oleme loonud uue ulatuse ja uue objekti.

Järgmises näites loome fiktiivse API andmete lossimiseks serverist pärit andmeid. Me loome API-objekti mõnede meetoditega.

Sõna uue kasutamisel liigub skripti kontekst akna kontekstist API-le.

Var api \u003d (getdata: funktsioon () (konsool.log (see \u003d\u003d\u003d aken); // vale konsool.log (see \u003d\u003d\u003d API); // tõsi)); Api.getdata ();

Nagu näete, määratakse selle väärtus täielikult meetodi meetodile. Kuna funktsiooni kutsutakse API-objekti piires selle vanema, siis viidatakse selle väärtuse API objektile.

Pea meeles, et see väärtus muutub. See varieerub sõltuvalt kõnemeetodist, kuid kui kasutate sidumismeetodit, jääb selle väärtus jääb muutumatuks.

Üksikasjalikumalt märksõnaga JavaScript, saate tutvuda artikli quirksmode ja dokumentatsiooni Mozilla.

"Kasutage ranget";

Nagu me juba varem täpsustasime, kasutatakse kasutaja ranget javaScripti keele rangema versiooni rakendamiseks. Käesolevat direktiivi kohaldatakse kõigis skriptides.

Vaikimisi on JavaScript oma süntaksis päris tasuta. See lihtsalt jätab koodi vale osa ja proovige täita järgmisi rida, kuid ei ütle teile midagi.

Mozilla dokumentatsioonis on selle teema kohta terve artikkel, soovitan tungivalt, et te temaga kohtute.

Erinevad tsüklite liigid

Sa oled üllatunud, aga ma kohtasin tohutu arvu arendajaid, kes ei teadnud, kuidas tsüklit õigesti kasutada ja absoluutselt ei kuulnud teiste tsüklite liikide kohta. Ja suutma kasutada massiivi või objekti tsüklit - arendaja jaoks väga oluline oskus. Ei ole selget juhendamist, millal ja mida tsükli tüüp rakendada, kuid sa peaksid selles küsimuses navigeerima. Kindlasti olete tuttav ja samal ajal, aga mis teistega?

JavaScripti tsüklite loetelu:

  • jaoks
  • for..of (lisatakse ES6)
  • igaühele.
  • samas
  • do..while.

Tsükkel

Absoluutselt kohustuslik tsükkel, mis peab teadma ja mõistma. See täidab oma keha tingimuse täitmisel 2.

(Seisund 1; seisund 2; seisukord 3) (// teie kood)

Seisukord 1 - teostati üks kord enne tsüklite seeria algust. Enamikul juhtudel käivitate siin tsükli loenduri. Seda elementi saab ära jätta, kui te käivitate varem.

Seisukord 2 - selle tingimuse kasutatakse tsükli jätkamiseks või mitte. Tõenäoliselt võrrelda oma loendurit massiivi suurusega. Kui tegeliku võrdluse väärtus jätkub. Kui te katkestate tsükli sees pausiga, siis seda seisundit saab vahele jätta.

Seisukord 3 - See sait täidetakse pärast iga iteratsiooni reeglina, see on siin, et te suurendate oma loendust.

Tsükkel ...

Tsükli tüüp on järgmine. Sellega saate läbida kõik klasside väljad.

Anna meile näide.

Var inimene \u003d (eesnimi: "Dwayne", perekonnanimi: "Charrington", vanus: 27, tähed: "Veevalaja"); // Allolev silmus väljund: // Dwayne "//" Charrington "// 27 //" Veevalaja "jaoks (kui (Person.HaSownProperty (P)) (konsool.log (inimene [p]));)))

Tsükkel ...

ES6-le lisati päris uus tsükli tüüp. Oma uudsuse alusel, mida kõik brauserid ei toeta. Teatavate tehnoloogiate kasutamisel saab seda kasutada juba täna.

See tsükkel on täielik vastupidine ... in, see läbib põllu väärtused ja töötab ainult andmetüübid, mis toetavad iteratsioone, mille suhtes objekti ei kohaldata.

Var fruits \u003d ["oranž", "õun", "squash", "pirn"]; Jaoks (Var vilja puuviljad) (konsool.log (puuviljad);)

Seda tüüpi tsükli suur pluss on see, et me ei pea enam kursiit looma ja jälgige massiivi pikkust täielikult oma elementide täielikult läbima.

Foreach tsükli

Teine tsükli tüüp, mis oma sügavamal ei erine eelnevalt loetletud tsüklitest.

See toimib ainult massiividega, mitte objektidega. See on kasulik asjaolule, et te ei pea looma täiendavaid muutujaid, mis lõpuks teie koodi saastavad. \\ T

Kindlasti on see kõige piiratud tüüpi tsükli tüüp, kuid sellel on oma rakendused, mis teadaolevalt teada:

Vari puuviljad \u003d ["õun", "banaan", "oranž", "viinamarjad", "Pear", "Passionfruit"]; // Kolm väärtust tagasihelistamisfunktsioonis on: // element - element on Traverse // Index - praegune indeks objekti massiivi käivitamisel 0///1 // massiivi - massiivi on läbisõit (ilmselt enamasti ebaoluline) Puuviljad. Furach (funktsioon (element, indeks, massiiv) (konsool.log (indeks, element);));

Mõnikord peate lihtsalt läbima kõik massiivi elemendid ja ehk mõned muudatused. Tema käitumine on sarnane jquery.each.

Üks sellise tsüklite puudumine - seda ei saa katkestada. Kui teil on vaja luua tsükli vastavalt ES5 reeglitele, siis kasuta massiivi.Every meetodit, et tutvuda, millega saab Mozilla dokumentatsioonis.

Tsükli ajal

The Kuigi tsükkel on sarnane, kuid see aktsepteerib ainult ühte parameeter - tingimus ise, mille tsükkel määrab jätkata iteratsioone või peatada need.

Kuigi seda tüüpi tsüklit peetakse kõige kiiremini, arvan, et see hetk on üsna vastuoluline. Ma arvan, et te ei väida, et seda tüüpi tsüklit ei hoolikalt kui teised, ja selle kiirust saab seletada ainult sisemise loogika lihtsusega.

Kogemuse kohaselt ütlen ma, et selle ajal tsükli kõige kiirem versioon on tsükkel, millel on arvesti vähenemine, vähendate seda seadme ühiku kohta, kuni jõuad nullini (mis on samuti väidetud).

Var i \u003d 20; (I--) (konsool.log (I);)

Tsükkel Do ... Kuigi

Selline tsükkel on üsna haruldane, kuid see on veel tasub tutvustada teda mõista oma tööd.

Kuigi tsükkel ei pruugi iteratsiooni teha. See tähendab, et kui te läbida vale väärtus tsükli tingimusena, siis ei täideta iteratsiooni. Kas ... kui tsükkel on tagatud vähemalt ühe toimimise täitmiseks.

See erinevus ei lõpe. Kui tsükkel töötleb tingimust enne iteratsiooni läbiviimist ja ... pärast seda.

Nagu alati Mozilla dokumentatsioonis, leiate selle tüüpi tsüklite üksikasjaliku kirjelduse.

Põhilised meetodid ja ülesanded

JavaScript on olemas põhimeetodid, mis peaksid olema teada. Seoses massiivide ja ridadega töötamise osas pakub JavaScript suure hulga sisseehitatud meetodeid. Me puudutame ainult massiivi ja ridu, jättes objektid hiljem.

Kui olete huvitatud teiste andmete liikide töötamisest, võtke julgelt ühendust Mozilla dokumentatsiooniga. Muidugi te ei tohiks teada kõiki neid meetodeid südamega, ma kirjeldan ainult neid, mis on vajalikud.

Töö stringidega

JavaScriptis töötate kõige sagedamini stringi andmetega, välja arvatud ilmselt massiivid ja objektid. Isegi kui te ei tööta ridadega või arvate, et te ei tööta, siis tasub nende meetoditega tutvuda.

  • String.Replace.Replace (regexp | Mida asendada, mida asendada, tagasihelistamise) - võimaldab teil asendada osa joonest, tal on lubatud kasutada regulaaravaldisi.
  • String.concat (Shotok 1, line 2 ...) - mitme joone ühendamine ühes ühes.
  • String.indexof (väärtus) - meetod võimaldab leida järgneva joone soovitud osa sümboli järjestuse arvu, -1 - kui stringit ei leitud
  • String.slice (Startindex, endindex) - tagastab stringi ala Startindexist endindexisse
  • String.Split (eraldaja, piirang) - katkestab stringi eraldaja sümboliga massiivile, maksimaalse piir pikkusega.
  • String.Substcr (startindex, pikkus) - naaseb osa stringist, alustades startindexi pikkusega.
  • String.Tolowercase - tõlgib kõik väiketähti kõik stringi tähemärgid
  • String.Touppercase - edastage kõik tippkaalus olevad stringi tähemärgid
  • String.trim - eemaldab ruumide algusest ja lõpus tühikud

Töötamine massiividega

Sa sageli tuleb kohtuda massiividega. Nad on tõestanud end andmete salvestamiseks. Need meetodid on täpselt väärt, teades iga JavaScripti arendajat, te ei tohiks neid Google'is otsida.

  • Array.Pop on suunatud viimane element ja eemaldab selle massiivist.
  • Array.Shift - tagastab esimese elemendi ja eemaldab selle massiivist.
  • Array.Push (Val1, Val2) - lisab massiivi lõppu ühe või mitu väärtust. Tagastab uue massiivi pikkus.
  • Array.Reverse - peegeldamine muudab massiivi elementide järjekorda.
  • Array.sort - võimaldab teil sorteerida massiivi oma funktsiooni abil.
  • Array.Join (eraldaja) - tagastab stringi, mis koosneb eraldaja sümboliga eraldatud massiividest elementidest (vaikimisi - koma).
  • Array.indexof (väärtus) - tagastab elemendi indeksi massiivi, -1, kui toodet ei leita.

See ei ole massiividega töötamise meetodite täielik loetelu. Teiste abil saate lugeda Mozilla dokumentatsiooni. Alustades ES6-st, on lisatud väga huvitavad meetodid.

Kõne ja rakenduse vahe

Need kaks meetodit segatakse üsna sageli. Sageli saate ilma nendeta teha, kuid nad aitavad helistada meetodeid ja muuta selle väärtust täitmise ajal.

Nende vahe on üsna väike, kuid see on olemas. Kõne meetodi kasutamisel saate määrata lõpmatu arvu argumente, jagades need komaga.

Kasutades rakenduse meetodit, saate edastada argumente massiivina ja muuta seda väärtust.

Kui teil on vaja lihtsalt massiivi suunata argumentmeetodiks, alustades seejärel ES6-ga arenenud (levikut) operaatoriga. See ei võimalda teil seda muuta. Teile saate tutvuda, nagu alati Mozilla ametlikus dokumentatsioonis.

Kõla näide:

Funktsioon Myfunc () (konsool.log (argumendid);) Myfunc.call (see, 1, 2, 3, 4, 5);

Täida Näide:

Funktsioon Myfunc () (konsool.log (argumendid);) myfunc.call (,);

Tuttav raamatukogude ja raamistikega

Tänapäeval on JavaScripti raamistiku kõige märgatavad esindajad Angellajs, React.js ja Ember. Loomulikult on veel mitmeid teisi.

Kuna veebirakendused muutuvad üha enam, lihtsustavad need raamatukogu nendega tööd. Tasub mõista, et nüüd teades üks JQuery on ilmselgelt piisav. Enamik vabad töökohad on seatud teadmistele täiendavate JavaScript raamatukogude kui põhinõue.

Node.js.

Kahtlemata Node.js hõivab kindlat positsiooni. Peaaegu iga esikülje tööriist on ehitatud Node.js'ile ja kasutab NPM-i (sõlme paketi haldur), kui see on võõras, soovitan teil tungivalt seda tegematajätmist parandada. Kuna Node.js kasutab JavaScripti, siis õppige see ei kujuta endast konkreetseid raskusi neile, kes seda keelt juba tuttavad. Sõlme pakettide seadistamiseks võtate rohkem aega kui koodi kirjutamine ise.

Isiklikult arvan, et sõlme puhul peaks 2015. aastal olema iga arendaja märk. Ma ei räägi sügavatest teadmistest, piisab, et oleks võimalik seda rakendada serveri arendamiseks, prototüüpimiseks, katsetamiseks jne.

Seal on kahvel node.js nimega io.js, täna nad on praktiliselt analoogid ja lõpuks kirjutad lihtsalt JavaScripti peale väikeste erinevuste jaoks.

Testimine

Kui me ei ole JavaScripti koodi üldse testinud, sest nad ei pidanud seda vajalikuks. Kuid skriptid muutuvad üha enam tänu Angelile ja Node.js.

JavaScript arendab ja skriptide maht suureneb ja testimine muutub elutähtsaks. Kui te ei test teie koodi, siis te teete valesti. Minu lemmik tester on karma. Seal on teised, kuid see konkreetne on osutunud ennast paremini kui igaüks, kes töötades Anglajidega. Ja kui see sobib Angellajsile, sobib see minu jaoks.

Vahendid

Olles JavaScripti arendaja 2015. aastal tähendab mitte ainult suurepäraseid teadmisi keelest, vaid ka suur hulk tööriistu töötamiseks.

Mõnikord sisaldavad vahendid brauseri ise, mida me kasutame. Ja mõnikord peate viitama kolmanda osapoole tööriistadele, et saada olukorra sügavam analüüs.

Siin on tööriistade kogum, mida peaksite meeles pidama: Gulp, Webpack ja Babeljs. Seal on palju rohkem tööriistu, kuid tööriistad nagu Gulp ja Grunt aitab teil arendada ja hallata JavaScripti rakendusi.

Nende päevade möödudes, kui sa lihtsalt JavaScripti faili alla laadisite ja lisasite selle lehele. Nüüd kasutame NPM-i või Boweri pakettide juhid.

Me ühendame ja minimeerime skripte, testime neid, mis aitab korraldada projekti struktuuri.

JavaScript tööriistad käivad käsikäes isomorfse JavaScripti väljatöötamisel (nii kliendi poolel kui ka serveris kasutatav kood). EciMarcript 6, ta on ES6, ta on esikeseng

Brausereid tuleb veel rakendada Enamik EcMacticript funktsionaalsest 6. Kuid täna saate kasutada uusi esemeid ES6-st, kasutades JavaScript kompilaatoreid. Tutvuge uute API-de ja meetoditega: read, massiivid ja muud meetodid, nagu nõrgad naudmised, sümbolid ja klassid. Sa peaksid alati teadlikud tulemas muutustest.

Järeldus

Ma võin sulle palju öelda. Otsustades selle artikli suurusega, võite ette kujutada, kui palju sa pead teadma JavaScripti arendajat. Me lihtsalt puudutasime jäämägi tippu. Ärge arvake, et see artikkel tuleks tajuda arendaja juhendina. See on lihtsalt minu isiklik nägemus probleemist.