JavaScript programskog jezika: Informacije za početnike. Ono što trebate znati da je svaki JavaScript programer odgovoran za JavaScript programer

Prilagođeni prijevod članka "Potpuno javascript u šest tjedana: Vodič za nastavni plan i program"

Web razvoj je jedan od najlakših i najpopularnijih uputa među početnim programerima. Za posao sasvimko tekst uređivač I pregledač, nije potrebno proučiti algoritme na naprednom nivou, rezultat svakog koraka pisanja programa je vizualno - općenito, puno koristi. Ključne vještine u kontekstu web razvoja smatraju se znanjem JavaScript-om.

Sada se JavaScript razvija vrlo brzo, pa stoga kada je učenje jezik lako zbuniti. Nudimo vam nastavni plan i program sa prikladnom strukturom koja pokriva sve potrebne aspekte JavaScript-a i srodnih tehnologija.

Zašto JavaScript?

Vrijedi napomenuti otvorenost jezika - kompanije, obično se međusobno takmiče, surađuju za razvoj JavaScripta. Jezik je vrlo fleksibilan i odmoriće pristalicama i objektno orijentiranog i funkcionalnog pristupa. Ogroman broj biblioteka i okvira omogućava vam lako riješiti bilo kakve vrste zadataka, a platforma NODE.JS poslužitelja omogućava korištenje jezika ne samo u pretraživaču, već i u konzoli. Možete čak i napisati radne površine i mobilne aplikacije: Prvo - sa elektronskim okvirom, a druga je na rodom natovima ili reagiraju na rodu.

Osnove

U početku je potrebno proučiti osnovne koncepte JavaScript, web razvoja i programiranja u cjelini:

  • objektno orijentisani JS - Dizajneri i tvornice, nasljedstvo;
  • funkcionalna JS - funkcije veće narudžbe, zatvaranje, rekurzija;
  • specifikacija testa jasmina;
  • osnove HTML-a, CSS i jQuery.

Git.

Git je alat koji vam je potreban za programere, tako da je potreban što je prije moguće. Evo osnovnih vještina koje morate posjedovati:

  • kreiranje i premještanje datoteka u direktorijima;
  • inicijalizacija i obaveza u git;
  • postavljanje spremišta u GitHub.

Algoritmi i strukture podataka

Tada vrijedi ispitivati \u200b\u200balgoritme (posebno, koncept složenosti algoritama), kao i osnovne strukture podataka: povezani popisi, redovi, hrpe, binarna traga i hash stol. Ovo će vam pomoći.

Pobediti

Čvor.js.

Prije 10 godina, JavaScript se mogao koristiti samo za frontnd razvoj. Sada zahvaljujući čvoru.js, slučaj nije ograničen na jedan "front". Čvor je samo okruženje za izvršavanje JS koda na strani poslužitelja, tako da nećete morati proučavati novu sintaksu, ali trebat ćete uvoziti datoteke izvesti i izvesti u module i koristiti NPM menadžer paketa.

Serveri, http, express.js

Nakon studiranja čvora, potrebno je nastaviti upoznavati sa pozadinskim razvojem i razvrstavanjem poslužitelja i usmjeravanja. Možete započeti od portova i protokola s naglaskom na HTTP, a zatim izričite biblioteku brza - čvora za rukovanje zahtjevima.

Asinhroni JavaScript.

Baze podataka, šeme, modeli i orm

Baze podataka su jedan od najvažnijih elemenata web razvoja. Ako vaša aplikacija treba preuzeti ili pohraniti bilo koji podatak koji se ne gubi prilikom ažuriranja stranice, morat će koristiti bazu podataka. Potrebno je naučiti razlikovati relacijske i ne-relacijske baze podataka i razumjeti vrste veza. Zatim se upoznati sa različitim. Sposobnost rada sa Ormom takođe neće biti suvišna.

Pocrtavati

HTML i CSS.

HTML i CSS je osnova temelja za bilo koji web programer. Ne morate ih savršeno znati, ali trebali biste ih razumjeti. Takođe možete istražiti bilo koju popularnu biblioteku (na primjer, bootstrap) i CSS Preprocessor poput SASS-a - pomoći će da CSS slično uobičajenom kodu. Da biste pojednostavili rad sa HTML-om, možete odabrati jedan od popularnih templatezatora, na primjer, PUG.

jQuery i manipulacijski dom

Stvorio izgled stranice na pomozite HTML I CSS, koristit ćete jQuery biblioteku za kontrolu Doma. Mnogi vjeruju da je jQuery beskoristan i uskoro će biti zamijenjena kutnim i reagiranim, ali to je ludo popularno, pa je to vrijedno znati. Pored toga, jednog dana ćete pasti u situaciju u kojoj ćete biti neugodni za postizanje reakcije mikroskopa, a zatim će se lak jQuery doći u spas.

Alati za programere Chrome

Bilo bi neoprostivo podijeliti pažnju hromiranih alata koji daju ogromnu količinu mogućnosti. S njima možete studirati dom elemente, uklanjanje regulacije kroz konzolu, pratiti rute i još mnogo toga. Slede su pogodne karakteristike hromirane konzole, što će pojednostaviti izvršenje rutinskih zadataka.

Ajax

Ako želite da aplikacija ne ponovo učitava stranice nakon svake operacije baze podataka, definitivno će vam trebati Ajax - šalje pozadinu asinhronog HTTP zahtjeva, odgovore na koji se ažurira samo dio zaslona. Možete raditi s Ajaxom putem jQuery koristeći metodu.ajax.

Programiranje nije samo način da zaradite veliki novac, a ne potpuno mentalni posao. Ovo je prilika za razumijevanje onoga što svijet oko njega sastoji, razgrađuje ga u male čestice, a zatim se ponovo okupi, vođeni vlastitim logikom i znanjem.

Jezici programiranja samo su alat s kojim osoba gradi pravila u stvorenim sistemima.

Internet je puno mogućnosti za koje su zaplijenjeni svijetli i poduzetni umovi. Naravno, web razvoj također ima vlastite alate za provođenje ideja u život. Jedan od njih - jezik javaScript programiranje O čemu će se raspravljati u ovom članku:

opće informacije

Mnogi ljudi, čak i nema veze sa IT-sferom, čuli riječ Java. Revolucionarni neovisni jezik na jeziku na kojem aplikacije aktivno pišu mobilni sistemi. Razvio ga je obećavajuća sunce kompanija koja je potom prešla "ispod krila" Oracle. Ali ni jedno ni drugo preduzeće nemaju nikakve veze sa JavaScript-om:

Od sunca uzeo je samo dozvolu za korištenje dijela imena. Iznenađujuće, JavaScript uopće nema nikakve firme.

Pri pisanju web aplikacija, JavaScript programiranje najčešće se koristi. Ako ukratko popijete ključne karakteristike Ovaj jezik treba odabrati na sljedeći način:

  • Objektno orijentisan. Izvršenje programa je interakcija objekata;
  • Donošenje vrsta podataka se automatski vrši automatski;
  • Funkcije su objekti osnovne klase. Ova značajka čini JavaScript sličan mnogim funkcionalnim programskim jezicima, kao što su Lisp i Haskell;
  • Automatsko čišćenje memorije. Takozvana zbirka smeća čini JavaScript sličan C # ili Java.

Ako govorimo o suštini upotrebe JavaScripta, ovaj jezik vam omogućava da "oživite" fiksne stranice web lokacija pomoću koda koji se može pokrenuti ( takozvane skripte). To jest, možete napraviti analogiju crtanim filmonima u kojima su HTML i CSS proručeni junaci, a JavaScript je ono što ih čini da se kreću.

Ako razgovaramo o JavaScript sintaksi, tada su sljedeće karakteristike svojstvene:

  • Registar je važan. Funkcije s FUNC () i FUNC () nazivima - potpuno različite;
  • Nakon operatora, potrebno je staviti tačku zarezom;
  • Ugrađeni objekti i operacije;
  • Prostori se ne uzimaju u obzir. Možete upotrijebiti koliko uvlaka, kao i niza prijevoda za dogovore koda.

Najjednostavniji kod na JavaScript izgleda ovako:

Opseg primjene

Da biste shvatili zašto je JavaScript potreban, a koliko je potrebno učiti, neka područja u kojima se primjenjuje ovaj jezik Programiranje.

  • Razvoj web aplikacija. Želite li instalirati jednostavan brojač, urediti prijenos podataka između obrazaca ili staviti na vašu web stranicu? Tada će JavaScript učiniti vjernim asistentikom u ovom pitanju;
  • "Aktivno učešće" u Ajaxu. Ova tehnologija ima značajno ubrzane aplikacije, vršili razmjenu podataka s poslužiteljem u režimu "Pozadina":
  • OS. Možda neko nije znao, već Windows, Linux i Mac imaju konkurente za preglednike, lavovski udio u kojem je napisano u JavaScript-u;
  • Mobilne aplikacije;
  • Opseg obuke. Bilo koji specijalnost programera na univerzitetu uključuje studiju JavaScripta na ovaj ili onaj način. To je zbog činjenice da je jezik prvobitno razvijen za ne baš jake programere. JavaScript lekcije su logično utkane na baznu HTML kurs, tako da razvoj prolazi dovoljno jednostavno.

Prednosti i nedostaci

Nemojte misliti da je JavaScript neka vrsta panaceje iz svih problema, a svaki programer sa osmijehom na licu uživa u ovom jeziku. Sve na svijetu ima svoje pozitivne i negativne strane. Za početak sa čime se bilježimo nedostatke.

  • Potreba za pružanjem unakrsnog pregledača. Budući da JavaScript djeluje kao internetska tehnologija, a zatim morate izdati pravila koja uspostavljaju World Wide Web. Kôd se mora pravilno izvoditi u cijeloj, ili barem najpopularniji, preglednici;
  • Sistem nasljeđivanja na jeziku uzrokuje poteškoće u razumijevanju onoga što se događa. JavaScript implementirao nasljedstvo na osnovu prototipa. Ljudi koji su proučavali druge objektno orijentirane programski jezik navikli su na uobičajeno " potočni potomci naslona nasljeđuje roditeljsku klasu" Ali u JavaScript-u takve se stvari direktno bave predmetima, a to se ne uklapa u glavu;
  • Odsutan standardna biblioteka. JavaScript ne pruža nikakve mogućnosti za rad sa datotekama, I / O potocima i drugim korisnim stvarima;
  • Sintaksa u cjelini otežava razumijevanje. Ljepota Kodeksa očito nije javascript horst, ali je glavno pravilo programera zabilježeno: " Radi? Ne pokusavaj!».

Sada je vrijedno napomenuti neke prednosti

  • JavaScript nudi veliki broj Prilike za rješavanje širokog broja zadataka. Jezična fleksibilnost omogućava vam da koristite višestruke predloške programiranja u odnosu na određene uvjete. Inventivni um će dobiti sadašnje zadovoljstvo;
  • Popularnost JavaScripta otvara znatnu količinu gotovih biblioteka prije programera, što vam omogućuje značajno pojednostavljenje pisanja koda i razimati nesavršenost sintaksa;
  • Primjena u mnogim područjima. Wide JavaScript funkcije daju programerima šansu da se isprobaju kao programer širokog broja primjena, a to je definitivno zanimanje za grijanje u profesionalnim aktivnostima.

Ne obraćajte pažnju na činjenicu da su minusi ispostavile više od prednosti. Javascript čvrsto fiksiran u svojoj niši, a ne kritike odatle ovaj trenutak Ne bira.

Za one koji žele studirati

Težak i dug put imaće onima koji su odlučili temeljno naučiti JavaScript. Za početnike postoje osnovne preporuke, nakon što je moguće značajno pojednostaviti njihov trening.

  • Prije svega, HTML. Nemoguće je početi raditi nešto za internet bez osnova osnova. Kaskadne listove stila (CSS) biće vrlo korisno;
  • Koristite novu literaturu. Programiranje nije fizika, čiji su zakoni neophodni, a novi udžbenici su stare. IT tehnologije se neprestano razvijaju i ne treba ih zanemariti korisnim ažuriranjima;
  • Da biste pokušali napisati sve odjeljke programa. Ako se nešto uopće ne pokaže - možete posuditi tuđi kod, ali samo predodrediti za sebe svaku liniju;
  • Otklanjanje pogrešaka je vaš vjerni prijatelj. Brzo pronađite pogreške - jedan od najvažnije bodove u programiranju;
  • Ne zanemarujte norme oblikovanja. Naravno, kôd neće biti bolji ili lošiji od različitog broja uvlaka i razmaka, ali jednostavnost čitanja i razumijevanja programera također je važan trenutak. Kod ispod? vrlo teška percipirana, pogotovo ako niste njegova
  • Imena varijable moraju imati leksičku vrijednost. U procesu pisanja jednostavni programi Čini se da uopće nije važno, ali kada se broj reda koda valja preko hiljadu - svi vragovi razbijaju noge;

JavaScript je stalno razvijanje jezika, posebno sada, kada je uspostavljen godišnji raspored ažuriranja za ažuriranje Ecmascript specifikacija. S tim u vezi, važnost znanja JavaScript izvan jQuery povećava se.

Naravno, u ovom članku nećemo moći pokriti cjelokupnu potrebu za znanjem. Sigurno će doći do trenutaka koji su mi nedostajali, možda sam varao ili naša mišljenja s vama u vezi s potrebnim setom znanja razlikuju se.

S obzirom na ove aspekte, krenimo ...

Šta je fizzizbiz test

Fizzizizz - u pravilu, mali test koji je imao za cilj čišćenje neiskusnih programera. Mislim da ćete se iznenaditi koliko JavaScript programera ne zna kako pisati takve testove.

Kao pravilo, takvi testovi ne nose opterećenje velikog smisla. Usmjerava se isključivo za provjeru sposobnosti potencijalnih kandidata.

Zapamtite, vjerojatnost da će se od vas tražiti da izvršite sličan test na intervjuu je vrlo velik.

Primjer klasičnog fizzizbizz testa:

Opcije za takve testove su neograničene. Jednom, na intervjuu, naleteo sam na takav test, nakon čega sam morao riješiti još dvije mogućnosti.

Za (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"); } }

Razlika između \u003d\u003d i \u003d\u003d\u003d

Vjerovatno ste upoznati sa oba operatora za usporedbu. Ipak, znate li šta se tačno ti operateri razlikuju? Vaša JavaScript Linter zahtijeva da primijenite operatera \u003d\u003d\u003d, pitajte se zašto?

Ne uspoređuju vrste operanda, umjesto toga vodi u jednu vrstu. Takva operacija ima negativnu reputaciju.

Konzola.log (24 \u003d\u003d "24"); // Tačno.

Kao što vidite, unos niza od 24 (u pojedinačnim navodnicima) dato je cijeli vrstu cijele vrijednosti. Naravno, postoje situacije u kojima tačno i želite li, ali najčešće želite li voziti usporedbene podatke o upravljaču. Upoređujući podatke pomoću operatora \u003d\u003d ne preporučuje se većina sistema za provjeru koda JavaScript stila ukazivat će na ovu grešku.

\u003d\u003d\u003d (stroga usporedba) uspoređuje tipove podataka, a da ih ne pretvorimo u jednu vrstu, odnosno podaci će se usporediti kao i. Takođe, jer vrsta vrsta nije uključena u ovu operaciju, to funkcionira brže. Tako da se ovaj operater pravilno proteže, operatori iste vrste bit će potrebni.

Isti primjer, ali s operatorom \u003d\u003d\u003d

Konzola.log (24 \u003d\u003d\u003d "24"); // FALSE

Kao odgovor, postižemo lažne, jer su operandi različitih vrsta, jedan od njih cijeli broj, te drugi niz.

Kako odabrati DOM elemente bez dodatnih biblioteka

Sigurno ste upoznati sa načinom na koji uzorak elemenata koristeći jQuery, ali možete li učiniti istu stvar, ali bez pomoći ove biblioteke?

Mislim, ne samo odabrati stavku sa specifičnim ID-om ili skupom klasa, govorim o izrazima za pretraživanje predmeta koji koriste jQuery.

Postoji nekoliko matičnih metoda za traženje elemenata u Domu, koje nisu inferiorne od jquery. Takođe možemo koristiti prvo dijete, posljednjeg djetetovog tipa selektora itd.

Upoznajte se sa nekim od ovih metoda

  • document.gerentEmentByid je klasična metoda za pronalazak predmeta po njihovoj ličnoj karti.
  • dokument.gerentmentByclassName - Odabir elemenata na vrijednosti polja ClassName
  • document.QueryEdector je odlična metoda koja praktično u potpunosti zamjenjuje $ () selektor od jQuery, ali već je uključen u JavaScript. Jedina razlika je u tome što vraća samo prvi koji je pronađen.
  • document.QueryEselcOllSall - Analog iz prethodne metode, ali vraća niz pronađenih predmeta.
  • document.Getelementsbytagname - Ova metoda će vam pomoći da odaberete elemente po oznaci. Ako trebate pronaći sve stavke DIV, onda vam treba ova metoda.

Također želim primijetiti da se metode upita i queryselctorslcl mogu koristiti ne samo na cijelom dokumentu, već i na pojedinim artiklima, odnosno uzorak možete napraviti unutar jednog roditeljskog elementa.

U mozilla dokumentaciji pronaći ćete kompletan opis ovih metoda.

Povećajte oglase varijabli i funkcija

JavaScript je zainteresiran za način na koji procesuje proglašene varijable i funkcije, svi oni automatski povećavaju opseg. Stoga se možete odnositi na njih prije njihovih oglasa u opsegu vidljivosti (na primjer, funkcije u JavaScriptu imaju vlastiti opseg).

Stoga, za praktičnost čitanja Kodeksa, uzmite pravilo da uvijek proglasite varijable na početku opsega. Ako navedite "Koristite strogu" na vrhu skripte ili funkcije, a zatim prilikom pristupa nepotrebnom varijabli dobit ćete grešku.

Većina alata za provjeru stila koda, poput jshinta, ukazuje na grešku ako niste koristili "Koristite strogu", na osnovu toga ako pokušate napisati dobar kôd, tada nećete koristiti varijable u bilo kojem slučaju žaba. Kao i uvijek, ako postoje pitanja, obratite se dokumentaciji iz Mozille, tamo ćete uvijek pronaći potpuni i sveobuhvatan opis vašeg problema.

Korištenje alata za programere u pretraživaču

Najčešće se takvi alati koriste za uklanjanje pogrešaka JavaScript skripta, ali njihova funkcionalnost nije ograničena. Na primjer, možete koristiti zaustavljanje, izvesti svoj scenarij korak po korak, unosite svaku funkciju istovremeno.

Ovi alati pružaju neophodnu pomoć, jer u potpunosti možete pratiti rad svoje aplikacije i pronaći nevoljena područja.

Naučivši se primijeniti alate za programere u takvim preglednicima kao Chrome, Firefox i u najnovijim verzijama Internet Explorer-a, možete odabrati pogrešku scenarija, izmjerite njenu brzinu i pronađite mjesta na kojima vrijedi poboljšati radni algoritam.

Nikada ne pokušavajte slijepo prekršiti kod, prvo ga uvek analizirate pomoću alata za programere. Rješenje nekodržavnih problema je beskorisno vrijeme provođenja.

Konzoli timovi

Okrenite se sljedećoj stavci u istraživanju alata za programere. U pravilu svi nude konzolu u kojoj možete inhibirati JavaScript kod.

Sigurno ste već upoznati sa takvim timovima kao konzola.log i console.error, ali to nije ograničeno na funkcionalnost konzole.

Želim odmah napomenuti da neće sve navedene naredbe raditi u svim preglednicima. Pokušat ću spomenuti samo one koji rade u modernim preglednicima. Ipak, kao Vijeće, reći ću da prije nanošenja, pokušajte testirati svoje performanse, tako da uzalud ne čekiće kod.

  • konzola.log - koristi se za održavanje dnevnika događaja. Podržava formatiranje.
  • console.Error - za greške u evidenciji u kodu. Ova naredba koristim kada se greške pojave u AJAX upitima i u drugim potencijalno opasnim odjeljcima koda. Metoda je slična prethodnom, ali prikazuje listu poziva snopa.
  • konzola.dir (objekt) - prikazuje formatirani sadržaj objekta. Kako se koristi, ova metoda je vrlo korisna prilikom uklanjanja pogrešaka koda.
  • console.group (naslov) - omogućava vam da stvorite grupu poruka u dnevniku koja se naziva naslov. Na ovaj način možete grupirati poruke, na primjer, segmentom koda u kojem se generiraju.
  • console.GroupCollpased je analog prethodne naredbe u jednom izuzeću. Naime, prikazuje poruke u preklopljenom obliku.
  • console.Groupend - završava prethodno stvorenu grupu.
  • konzola.Time (naljepnica) - omogućava vam da pratite brzinu stranice u milisekundi. Metoda je korisna kada uzimate potencijalno složene dijelove kodova.
  • console.iteend (naljepnica) je analog metode grupisa, ali djeluje u odnosu na konzole.ime ().
  • kopiraj (string) - u Consoli Chrome i Firefox postoji metoda koja vam omogućuje kopiranje sadržaja niza u međuspremnik. Vrlo korisna metoda, pokušajte ga primijeniti.

Šta se tačno nalazi u ovome

Prije svega, ovo je veliki izvor problema onima koji ne razumiju u potpunosti ne razumiju šta tačno sadrži ovu ključnu riječ. I da se pogriješi u ovom vrlo jednostavnom, jer je njegov sadržaj u potpunosti ovisan o strukturi Kodeksa.

U tradicionalnim programskim jezicima, to sadrži referencu na objekt trenutnog klase. Ali otkad je JavaScript daleko od tradicije, a zatim u njemu ova varijabla odnosi se na matični objekt objekta.

Najlakši način za razumijevanje ovo je potrebno za vlasnika ili roditelja metode. To se uvijek odnosi na roditelj (roditelj), osim slučajeva kada koristite poziv, primijenite ili vežete metode.

U sljedećem primjeru, ovo se odnosi na prozor:

Funkcija MyFunction () (konzola.log (ovaj \u003d\u003d\u003d prozor); // True) MyFunction ();

Sigurno imate pitanje, kako može biti jednak prozoru ako se na njemu apelirate u metodu? Ako znate odgovor na ovo pitanje, zatim savršeno, inače čitate i pokušat ću objasniti.

Prilikom proglašenja funkcije na taj način priključen je na globalni prozorski objekt. Zapamtite, da li smo rekli da se to odnosi na metodu metode?

Promjena vrijednosti toga na potpuno novi objekt (ne prozor):

Funkcija MyFunction () (Console.log (ovaj \u003d\u003d\u003d prozor); // FALSE) NOVO MyFunction ();

Navijači čistoće koda sigurno u šoku iz takvog primjera. Samo idemo na vrh ledenog brijega sa takvim primjerima. Kao što vidite, ova vrijednost više nije jednaka prozoru.

Zašto se to dogodilo?

Najjednostavnije objašnjenje - u drugom primjeru koristili smo ključnu riječ novu, ove većine stvorili smo novi opseg i novi objekt.

U sljedećem primjeru stvorit ćemo izmišljeni API za istovar podataka iz biblioteke sa servera. Stvorit ćemo API objekt s nekim metodama.

Kada koristite riječ nova, kontekst skripte pomiče se iz konteksta prozora do API-ja.

Var api \u003d (getdata: funkcija () (konzola.log (ovaj \u003d\u003d\u003d prozor); // FALSE CONSOLE.Log (ovaj \u003d\u003d\u003d API); // True)); API.Getdata ();

Kao što vidite, vrijednost toga je u potpunosti postavljena u načinu pozivanja metode. Budući da se funkcija naziva unutar API objekta, njegov roditelj, tada vrijednost toga navodi API objekt.

Zapamtite, ovu vrijednost se mijenja. Varira ovisno o načinu poziva, ali ako koristite vezu, vrijednost to ostaje nepromijenjena.

Više detalja s ključnom riječi u JavaScript-u, možete se upoznati u članak Quirksmode i dokumentaciju iz Mozille.

'Koristite strogu';

Kao što smo već naveli ranije, korisnik se koristi za primjenu strože verzije JavaScript jezika. Ova se direktiva slijedi da se prijavi u svim skriptima.

JavaScript je prema zadanim postavkama prilično besplatan u svojoj sintaksi. Jednostavno će propustiti pogrešan dio koda i pokušati izvršiti sljedeće redove, a ne govoreći vam ništa.

U dokumentaciji iz Mozille postoji čitav članak o ovoj temi, toplo preporučujem da je upoznate.

Različite vrste ciklusa

Bićete iznenađeni, ali upoznao sam ogroman broj programera koji nisu znali kako za pravilno koristiti ciklus i apsolutno nije čuo za druge vrste ciklusa. I moći koristiti ciklus na nizu ili objektu - vrlo važnu vještinu za programera. Ne postoji jasno uputstvo kada i šta primijeniti vrstu ciklusa, ali trebali biste se kretati u ovom pitanju. Sigurno ste upoznati za i dok ste, ali šta je sa drugima?

Lista ciklusa u Javascript-u:

  • za..in
  • za..OF (dodan ES6)
  • za svaki.
  • dok
  • uray..while

Ciklus za

Apsolutno obavezni ciklus koji treba znati i razumjeti. Izvodi svoje tijelo prilikom izvođenja stanja 2.

Za (stanje 1; stanje 2; stanje 3) (// vaš kod)

Stanje 1 - izvršava se jednom prije početka serije ciklusa. U većini slučajeva, ovdje ćete inicijalizirati brojač ciklusa. Ovaj predmet se može propustiti ako se ranije inicijalizirate.

Stanje 2 - Ovo stanje se koristi za utvrđivanje ciklusa ili ne. Vjerovatno ćete ovdje uporediti svoj brojač s veličinom polja. Ako se vrijednost istinske usporedbe, ciklus nastavlja. Ako prekidate ciklus iznutra sa pauzom, tada se ovo stanje može preskočiti.

Stanje 3 - Ova web lokacija se pogubi nakon svake iteracije, u pravilu je ovdje da povećate svoj brojač.

Ciklus za ... u

Slijedi vrstu ciklusa. S njom možete proći kroz sva polja klase.

Dajmo primjer.

Var osoba \u003d (ime: "Dwayne", prezime: "charrington", Starost: 27, starson: "Vodolija"); // Donja petlja će se izlazna: // "dwayne" // "charrington" // 27 // "Vodolija" za (ako (osoba.HasownProperty (p)) (console.log (osoba [P]);))

Ciklus za ... od

Prilično nova vrsta ciklusa dodana je u ES6. Na osnovu njegove novitete, a ne podržavaju svi pretraživači. Ali prilikom upotrebe određenih tehnologija, može se već koristiti danas.

Ovaj ciklus je potpuna suprotna za ... In, prolazi kroz terenske vrijednosti i radi samo s tipovima podataka koje podržavaju iteracije na koje se objekt ne primjenjuje.

Var plodovi \u003d ["narandžasta", "Apple", "Squash", "kruška"]; Za (var plod voća) (konzola.log (voće);)

Veliki plus ove vrste ciklusa je da više ne trebamo stvarati pokazivač i slijediti dužinu polja da biste u potpunosti prođeli kroz njene elemente.

Ciklus predviđanja

Druga vrsta ciklusa, koja se u svojim dubinama ne razlikuje od prethodno navedenih vrsta ciklusa.

Radi samo sa nizovima, a ne objektima. Korisno je za činjenicu da ne morate stvarati dodatne varijable koje na kraju zagađuju vaš kod. \\

Sigurno je to najograničnije vrsta ciklusa tipa, ali ima svoje primjene o čemu će se znati da zna:

Var plodovi \u003d ["Apple", "banana", "narandžasta", "grožđe", "kruška", "strasionfruit"]; // Tri vrijednosti na funkciji povratnog poziva su: // Element - element koji se nalazi // Indeks - trenutni indeks stavke u nizu koji počinje od 0 // Array - porođaj (vjerojatno uglavnom nebitno) Voće. Veseha (funkcija (element, indeks, niz) (konzola.log (indeks, element);));

Ponekad jednostavno trebate proći kroz sve elemente niza i možda ćete napraviti neke promjene u njima. Njegovo ponašanje je slično jquery.each.

Jedan nedostatak ove vrste ciklusa - ne može se prekinuti. Ako trebate kreirati ciklus prema ES5 pravilima, a zatim koristite metodu ARRAY.ewery da biste se upoznali sa kojom možete u Mozilla dokumentaciji.

Dok se ciklus

Dok je ciklus sličan, ali prihvaća samo jedan parametar - uvjet kojim ciklus određuje da nastavi iteracije ili ih zaustavi.

Iako se ova vrsta ciklusa smatra najbržim, mislim da je ovaj trenutak prilično kontroverzan. Mislim da nećete tvrditi da ova vrsta ciklusa ne izgleda pažljivo od ostalih, a njegova brzina može se objasniti samo jednostavnošću interne logike.

Prema iskustvu, reći ću da je najbrža verzija dok je ciklus ciklus sa smanjenjem brojila, smanjujete ga po jedinici dok ne dođete do nule (koji se takođe tvrdi).

Var i \u003d 20; Dok (i--) (konzola.log (i);)

Ciklus ... Dok

Takav ciklus je prilično rijedak, ali još uvijek ga vrijedi uzimati da shvati njegov rad.

Dok ciklus ne može obavljati iteraciju. To jest, ako prođete lažnu vrijednost kao ciklus uvjete, tada se neće izvršiti iicija. Učiniti ... dok ciklus je zagarantovano ispuniti barem jednu operaciju.

Ova razlika se ne završava. Dok ciklus obrađuje uvjet prije izvođenja iteracije i učinite ... dok nakon toga.

Kao i uvijek, u dokumentaciji iz Mozille naći ćete detaljan opis ove vrste ciklusa.

Osnovne metode i zadaci

JavaScript postoji osnovne metode koje bi trebalo biti poznato. Što se tiče rada sa nizovima i redama, JavaScript nudi veliki skup ugrađenih metoda. Dotaknut ćemo samo nizove i linije, ostavljajući predmete za kasnije.

Ako ste zainteresirani za rad s drugim vrstama podataka, tada se hrabro obratite mozilli dokumentaciji. Naravno, ne biste trebali znati sve ove metode od srca, opisat ću samo one koji izgledaju potrebno.

Radite sa žicama

U JavaScriptu najčešće radite sa podacima o nizovima, s izuzetkom, vjerovatno nizovima i objektima. Čak i ako ne radite sa redama, ili mislite da ne radite, onda se još uvijek vrijedi upoznavati sa ovim metodama.

  • String.replace (regexp | Što zamijeniti što zamijeniti, povratni poziv) - Omogućuje vam zamjenu dijela linije, dozvoljeno je koristiti redovne izraze.
  • String.concat (sklarok 1, linija 2 ...) - Priključak nekoliko linija u jednom.
  • String.indexof (vrijednost) - Metoda vam omogućava da pronađete niz slijeda simbola željenog dijela linije, -1 - ako se niz nije pronađen
  • String.slice (starterindex, endindex) - vraća niz niza od startendex do endindex
  • String.Split (separator, granica) - prekida niz u niz po simbolu odvajača, maksimalna dužina granice.
  • String.subsctr (startendex, dužina) - vraća dio niza koji počinju s starterindex duge dužine.
  • String.tolowercase - prevodi sve znakove niza u malim slovima
  • String.touppercase - prenesite sve žice u gornji registar
  • String.trim - uklanja razmake od početka i kraja linije

Rad sa nizovima

Često ćete se morati sastati sa nizovima. Oni su se pokazali kao način pohrane podataka. Ove metode točno vrijede znati svakog programera JavaScript-a, ne biste ih trebali tražiti u Googleu.

  • Array.Pop je usmjeren posljednjim elementom i uklanja ga iz niza.
  • Array.shift - vraća prvi element i uklanja ga iz niza.
  • Array.Push (val1, val2) - dodaje jednu ili više vrijednosti na kraj niza. Vraća novu dužinu niza.
  • Array.reverse - Zrcaljenje mijenja redoslijed elemenata niza.
  • Arry.Sort - omogućava vam da sortirate niz koristeći vlastitu funkciju.
  • Array.Join (separator) - vraća niz koji se sastoji od elemenata niza odvojenih simbolom separatora (zadano - zarez).
  • Array.indexof (vrijednost) - vraća indeks elementa u nizu, -1 ako predmet nije pronađen.

Ovo nije potpuna lista metoda za rad sa nizovima. Sa drugima možete pročitati dokumentaciju iz Mozille. Počevši od ES6 dodane su vrlo zanimljive metode.

Razlika između poziva i primjene

Ove dvije metode su zbunjene prilično često. Često možete bez njih, ali pomažu u pozivanju metoda i mijenjaju vrijednost toga tijekom izvršenja.

Razlika između njih je prilično mala, ali postoji. Kada koristite metodu poziva, možete postaviti beskonačni broj argumenata dijeljenjem zarezom.

Pomoću metode Primijenjenosti možete prenijeti argumente kao niz i promijenite ovu vrijednost.

Ako trebate jednostavno prenijeti niz kao metodu argumenta, zatim počevši sa ES6 Advanced (Raširačem) operatera. Ne dozvoljava vam da to promenite. Možete se upoznati s njim, kao i uvijek u službenoj dokumentaciji iz Mozille.

Primjer poziva:

Funkcija MyFunc () (konzola.log (Argumenti);) myfunc.call (ovo, 1, 2, 3, 4, 5);

Primijenite primjer:

Funkcija MyFunc () (Console.log (Argumenti);) myfunc.call (,);

Poznanstvo sa bibliotekama i okvirima

Danas su najistaknutiji predstavnici JavaScript okvira Angularjs, react.js i ember. Naravno da postoji još jedan broj drugih.

Budući da web aplikacije postaju sve više i više, ova biblioteka pojednostavljuje rad s njima. Vrijedno je razumjeti da sada zna da jedan jquery očito nije dovoljno. Većina konkursa postavljena je na znanje o dodatnim javascriptskim bibliotekama kao glavni zahtjev.

Čvor.js.

Nema sumnje čvora.js zauzima čvrst položaj. Gotovo bilo koji prednji alat izgrađen je na node.js i koristi NPM (čvorov paket menadžer), ako je nepoznat, jako savjetujem da ispravite ovaj propust. Budući da se čvor koristi JavaScript, a zatim učenje ne predstavlja posebne poteškoće za one koji su već upoznati sa ovim jezikom. Trebat ćete više vremena za postavljanje paketa čvora od pisanja samog koda.

Osobno mislim da bi s čvorom trebao biti znak svakog programera u 2015. godini. Ne govorim o dubokom znanju, dovoljno je da ga primijenite za razvoj poslužitelja, prototipiranje, testiranje itd.

Postoji vilica čvora.js nazvana io.js, danas su praktički analozi, a na kraju samo pišete JavaScript, osim malih razlika.

Testiranje

Jednom kada uopšte nismo testirali JavaScript kod, jer nisu smatrali potrebnim. Ali skripte postaju sve više i više zahvaljujući Angularjs i Node.js.

JavaScript se razvija, a obim povećanja i ispitivanja skripti postaje vitalna. Ako ne testirate svoj kôd, onda pogrešno radite. Moj omiljeni tester je karrma. Postoje i drugi, ali ovaj se posebno pokazao boljim od svih dok rade sa Angularjs. A ako je pogodan za Angularjs, onda je pogodno za mene.

Instrumenti

Biti programer JavaScript-a u 2015. znači ne samo izvrsno znanje o jeziku, već i veliki broj alata za rad s njim.

Ponekad alati uključuju sam pretraživač koji koristimo. A ponekad se morate uputiti na alate treće strane da biste dobili dublje analizu situacije.

Evo skupa alata koje biste trebali sjetiti: Gulp, WebPack i Babeljs. Postoji mnogo više alata, ali alati poput gulpa i Grunt vam pomažu u razvoju i upravljanju JavaScript aplikacijama.

Prošao tih dana kada ste upravo preuzeli JavaScript datoteku i dodali je na svoju stranicu. Sada koristimo NPM ili menadžere paketa.

Kombinujemo i minimiziramo skripte, testira ih, što pomaže u organizaciji strukture projekta.

JavaScript alati idu ruku pod ruku u razvoju izomorfnog JavaScripta (kod koji se koristi i na strani klijenta i poslužitelju). Ecmascript 6, on je ES6, on je eSnext

Preglednici i dalje moraju biti implementirani većina ekrmacript-a 6. Ali danas možete koristiti nove stavke iz ES6 pomoću JavaScript prevoditelja. Upoznajte se sa novim API-jem i metodama: redovi, nizovi i druge metode poput slabih masa, simbola i časova. Uvijek biste trebali biti svjesni nadolazećih promjena.

Zaključak

Mogu vam puno reći. Sudeći po veličini ovog članka, možete zamisliti koliko trebate znati programer JavaScript-a. Upravo smo dotakli vrhove ledenog brijega. Nemojte misliti da bi ovaj članak trebao biti shvaćen kao vodič za programera. Ovo je samo moja lična vizija problema.