Definiranje funkcija u JavaScriptu. Konstruktori i novi

Funkcija je blok koda koji izvodi radnju ili vraća vrijednost. Funkcije su prilagođeni kôd koji se može ponovno koristiti; Stoga, zahvaljujući funkcijama, programi postaju modularni i produktivniji.

Ovaj vodič nudi nekoliko načina za definiranje i pozivanje funkcije i korištenje parametara funkcije u JavaScriptu.

Definicija funkcije

Funkcije se definiraju ili deklariraju pomoću ključne riječi function. Sintaksa funkcije u JavaScriptu izgleda ovako:

naziv funkcijeOfFunction() (
// Kod koji treba izvršiti
}

Deklaracija funkcije počinje ključnom riječi function nakon koje slijedi naziv funkcije. Nazivi funkcija slijede ista pravila kao i nazivi varijabli: mogu sadržavati slova, brojke, podvlake i znakove dolara, a često se pišu malim i malim slovima. Nakon imena slijedi niz zagrada koje se mogu koristiti za izborne parametre. Kôd funkcije nalazi se u vitičastim zagradama, poput naredbe for ili if.

Kao što ste možda primijetili, vrijednost parametra name nije dodijeljena u kodu; to se radi kada se funkcija pozove. Prilikom pozivanja funkcije, korisničko ime se prosljeđuje kao argument. Argument je stvarna vrijednost koja se prosljeđuje funkciji (u ovom slučaju korisničko ime, na primjer 8host).

// Pozovite funkciju pozdrava s "8host" kao argumentom
pozdravi("8host");

Vrijednost 8host prosljeđuje se funkciji putem parametra name. Sada će parametar imena predstavljati ovu vrijednost u ovoj funkciji. Kôd za datoteku greetUser.js izgleda ovako:

// Inicijaliziranje prilagođene funkcije pozdrava
funkcija pozdrav(ime) (
console.log(`Zdravo, $(ime)!`);
}
// Pozovite funkciju pozdrava s "8host" kao argumentom
pozdravi("8host");

Kada pokrenete ovaj program, dobit ćete sljedeći izlaz:

Sada znate kako ponovno upotrijebiti funkciju.

Osim parametara, varijable se mogu deklarirati unutar funkcija. Te se varijable nazivaju lokalnim i postoje samo unutar svog funkcijskog bloka. Opseg varijabli određuje dostupnost varijabli; Varijablama koje su definirane unutar funkcije nije moguće pristupiti izvan funkcije, ali se mogu koristiti onoliko puta koliko se funkcija kojoj pripadaju koristi u programu.

Povratne vrijednosti

Možete koristiti više od jednog parametra u funkciji. Možete proslijediti više vrijednosti funkciji i vratiti vrijednost. Na primjer, stvorite datoteku sum.js i u njoj deklarirajte funkciju koja će pronaći zbroj dviju vrijednosti, x i y.

// Inicijaliziraj funkciju dodavanja
funkcija add(x, y) (
povratak x + y;
}

dodati(9, 7);

Ovaj kod definira funkciju s parametrima x i y. Funkcija tada dobiva vrijednosti 9 i 7. Pokrenite program:

Program će zbrojiti dobivene vrijednosti, 9 i 7, i vratiti rezultat 16.

Kada koristiti ključna riječ return, funkcija prestaje izvršavati i vraća vrijednost izraza. U ovom slučaju, preglednik će prikazati vrijednost u konzoli, ali to nije isto što i korištenje console.log() za izlaz na konzolu. Kada je pozvana, funkcija ispisuje vrijednost na mjesto odakle je pozvana. Ova se vrijednost može koristiti ili staviti u varijablu.

Izrazi funkcija

U prethodnom ste odjeljku deklarirali funkciju koja zbraja dva broja i vraća dobivenu vrijednost. Također možete stvoriti funkcijski izraz dodjeljivanjem funkcije varijabli.

Koristite prethodnu funkciju za primjenu dobivene vrijednosti na varijablu zbroja.

// Dodijeli funkciju dodavanja konstanti zbroja
const sum = funkcija add(x, y) (
povratak x + y;
}
// Pozvati funkciju za pronalaženje zbroja
zbroj(20, 5);
25

Sada je konstantna suma funkcija. Ovaj se izraz može skratiti pretvaranjem u anonimnu funkciju (tako se zovu funkcije bez parametra naziva). Trenutačno se funkcija zove add, ali u izrazima funkcije naziv se obično izostavlja.

// Dodijeli funkciju konstanti zbroja
const suma = funkcija (x, y) (
povratak x + y;
}
// Pozvati funkciju za pronalaženje zbroja
zbroj(100, 3);
103

Sada funkcija više nema ime, postala je anonimna.

Izrazi imenovanih funkcija mogu se koristiti za otklanjanje pogrešaka.

Funkcije strelica

Do sada su funkcije definirane pomoću ključne riječi function. Međutim, postoji noviji i koncizniji način za definiranje funkcije - ECMAScript 6 funkcije strelice. Funkcije strelica predstavljene su znakom jednakosti iza kojeg slijedi znak veće od: =>.

Funkcije strelica uvijek su anonimne i vrsta su funkcijskog izraza. Pokušajte stvoriti osnovnu funkciju strelice za pronalaženje zbroja dva broja.

// Definirajte funkciju množenja
const množenje = (x, y) => (
povratak x * y;
}

pomnoži(30, 4);
120

Umjesto funkcije pisanja, možete jednostavno koristiti => simbole.

Ako funkcija ima samo jedan parametar, zagrade se mogu izostaviti. U sljedećem primjeru funkcija kvadrira x, pa joj je potreban samo jedan broj kao argument.

// Definirajte kvadratnu funkciju
const kvadrat = x => (
povratak x * x;
}
// Pozovite funkciju za pronalazak proizvoda
kvadrat (8);
64

Bilješka: Ako funkcija strelice nema parametara, trebate dodati prazne zagrade ().

Funkcije strelica koje se sastoje samo od povratne naredbe mogu se skratiti. Ako se funkcija sastoji od samo jednog povratnog retka, možete izostaviti vitičaste zagrade i povratnu izjavu, kao u primjeru u nastavku.

// Definirajte kvadratnu funkciju
const kvadrat = x => x * x;
// Pozovite funkciju za pronalazak proizvoda
kvadrat (10);
100

Zaključak

Ovaj vas vodič uvodi u deklariranje funkcija, funkcijskih izraza i funkcije strelice, vraćanje vrijednosti i dodjeljivanje vrijednosti funkcije varijablama.

Funkcija je blok koda koji vraća vrijednost ili izvodi radnju.

Oznake:

Varijable i konstante u JavaScriptu. Deklariranje varijabli i dodjeljivanje vrijednosti njima. Globalne i lokalne varijable. Korištenje konstanti

Deklariranje varijabli u JavaScriptu

Nazivi varijabli u JavaScriptu mogu se sastojati od slova, brojeva, znaka $ i znaka _, a naziv varijable ne može započeti brojem. Imajte na umu da je JavaScript osjetljiv na velika i mala slova i da su varijable a1 i A1 različite varijable. Nije preporučljivo koristiti ćirilicu, iako je moguće.
Varijable u JavaScriptu deklarirane su ključnom riječi var:

Var Peremennaya_1 var Peremennaya_2

Ne preporučuje se korištenje varijabli u JavaScriptu bez deklaracije. To je moguće, ali može dovesti do pogrešaka.

Dodjeljivanje vrijednosti varijablama

Dodjeljivanje vrijednosti deklariranim varijablama u JavaScriptu:

Peremennaya_1 = 25 Peremennaya_2 = "Dodijeljeni tekst je u ravnim navodnicima"

Varijablama možete dodijeliti vrijednost odmah nakon deklaracije:

Var Peremennaya_1 = 25 var Peremennaya_2 = "Dodijeljeni tekst je u ravnim navodnicima"

Vrijednost varijable u JavaScriptu može se promijeniti tijekom izvođenja programa. Kada pišete tekst u varijablu, ona mora biti unutar ravnih navodnika.

Lokalne i globalne varijable

Ako je varijabla deklarirana unutar funkcije, onda jest lokalni i bit će dostupni (vidljivi) samo unutar ove funkcije. Kada funkcija izađe, lokalne varijable u JavaScriptu se uništavaju, tako da možete koristiti varijable s istim imenom u različitim funkcijama.

Ako je varijabla deklarirana izvan funkcija, onda jest globalno i bit će dostupni (vidljivi) u svim funkcijama unutar stranice. Globalne varijable se uništavaju u JavaScriptu kada se stranica zatvori.

Konstante u JavaScriptu

Konstante dizajnirani su kako bi olakšali rad s vašim kodom kada morate koristiti duplicirane vrijednosti ili izraze. Dovoljno je jednom postaviti vrijednost konstante i možete je koristiti koliko god želite umetanjem u kod svojih programa. JavaScript nema ključnu riječ za deklariranje konstanti; umjesto konstanti koriste se regularne varijable. Da bismo razlikovali konstante od varijabli, one se obično označavaju velikim slovima, koristeći podvlaku ako je potrebno:

Var DRUG_CHELOVEKA = "Pas"

Navedeni primjer konstante nije posve potpun, budući da je riječ “Pas” već lako zapamtiti i umetnuti gdje je potrebno. Konstante u JavaScriptu možete koristiti za snimanje i umetanje složenijih vrijednosti, na primjer, teško pamtljivih kodova, skupova znakova, dugog teksta, web adresa, adresa E-mail, telefonski brojevi, razne koeficijente.

U JavaScriptu se konstante mogu prepisati kao varijable, ali ako to učinite, tada se gubi značenje konstanti.

U ovom ćete članku naučiti kako odrediti konstante u JavaScriptu pomoću ključne riječi const.

ES6 pruža novi način za deklariranje konstanti pomoću ključne riječi konst. Ključna riječ konst stvara referencu na vrijednost samo za čitanje.

Const VARIABLE_NAME = vrijednost;

Po dogovoru, JavaScript konstantni identifikatori su velika slova.

Ključna riječ konst izgleda kao ključ riječ neka u tome što stvara varijable s opsegom bloka, ali vrijednosti deklarirane s const, ne može se mijenjati.

Varijable deklarirane ključnom riječi neka su promjenjiv. To znači da možete promijeniti njihove vrijednosti u bilo kojem trenutku, kao što je prikazano u sljedećem primjeru.

Neka je v = 10;
v = 20;
v = v + 5;
konzola.log(v); // 35

Međutim, varijable stvorene pomoću ključne riječi konst, nepromjenjivi su. Drugim riječima, ne možete im dodijeliti različite vrijednosti. Pokušaj ponovnog dodjeljivanja konstantne varijable rezultirat će pogreškom tipa TypeError .

Const TAX = 0,1;
POREZ = 0,2 ; //TypeError

Dodatno, varijabla koja je deklarirana pomoću ključne riječi konst, mora se odmah inicijalizirati vrijednošću. Sljedeći primjer poziva Sintaktička pogreška(sintaktička pogreška) zbog nepostojanja inicijalizatora u deklaraciji konstantne varijable.

Const RED; // Sintaktička pogreška

Kao što je ranije spomenuto, poput varijabli deklariranih ključnom riječi neka, varijable deklarirane ključnom riječi konst, imaju opseg bloka.

To je sve, au sljedećem ćemo članku govoriti o korištenju ključne riječi konst s objektnim literalima JavaScript.

Kada program treba pohraniti vrijednost da bi je kasnije koristio, ta se vrijednost dodjeljuje varijabli. Varijabla je jednostavno simbolički naziv za vrijednost koji pruža mogućnost dobivanja vrijednosti po imenu, to jest, kada program specificira naziv varijable, vrijednost se zamjenjuje umjesto njega.

Varijabla je dobila naziv zbog činjenice da se njezina vrijednost može mijenjati tijekom izvođenja programa.

Konstante

Konstanta je jednostavno simbolički naziv za vrijednost. Konstanta omogućuje pozivanje na vrijednost imenom, što znači da kada program specificira naziv konstante, vrijednost se umjesto toga zamjenjuje. Konstante se koriste za pohranu podataka koji se ne bi trebali mijenjati tijekom izvođenja programa.

Prije nego što se konstanta može koristiti, mora se deklarirati. Konstante se deklariraju pomoću ključne riječi const iza koje slijedi naziv konstante. Kako bismo razlikovali konstante od varijabli u programskom kodu, dogovoreno je da se nazivi konstanti pišu velikim slovima:

Konst MAX = 10;

Jednom kada je konstanta stvorena, pokušaj njezinog redefiniranja u varijablu ili pokušaj dodjele vrijednosti postojećoj konstanti izazvat će pogrešku.

Zašto su potrebne varijable i konstante?

Varijable i konstante vam pomažu u tome programski kod jasnije. Pogledajmo mali primjer:

Ukupna cijena = 2,42 + 4,33; // Ukupna cijena

Brojevi ovdje mogu značiti bilo što. Kako bi bilo jasno o čemu se točno ovdje radi, vrijednost 2,42 može se dodijeliti varijabli (ili konstanti) candyPrice (cijena slatkiša), a 4,33 varijabli (ili konstanti) oilPrice (cijena nafte):

TotalPrice = CandyPrice + oilPrice;

Sada, umjesto da zapamtite što ove vrijednosti znače, možete vidjeti da skripta zbraja cijenu slatkiša s cijenom maslaca.

Također, varijable i konstante pomažu u uštedi vremena prilikom otklanjanja pogrešaka u skripti. Umjesto da posvuda koristite isti literal, možete ga dodijeliti varijabli (ili konstanti) na početku skripte, a zatim koristiti varijablu (ili konstantu) umjesto literala u ostatku koda skripte. Ako se kasnije donese odluka o promjeni vrijednosti, tada će se promjene u kodu morati izvršiti ne na nekoliko mjesta, već samo na jednom mjestu - gdje je vrijednost dodijeljena varijabli (ili konstanti).

Opseg konstanti

Ista pravila vrijede za konstante kao i za varijable deklarirane pomoću ključne riječi let:

Konst MAX = 5; // Globalna konstanta ( const MAX = 10; // Konstanta bloka console.log(MAX); // 10 ) console.log(MAX); // 5 foo(); // 15 console.log(MAX); // 5 funkcija foo() ( const MAX = 15; // Lokalna konstanta console.log(MAX); )

Konstante i tipovi referenci

Kada se konstanti dodijeli vrijednost referentnog tipa, referenca na vrijednost postaje nepromjenjiva, a sama vrijednost ostaje promjenjiva:

Const obj = (a: 5); obj.a = 10; console.log(obj.a); // 10

Od autora: Možda će ovo biti iznenađujuće, ali JavaScript već dugo nema podršku za konstante, tj. registrirane vrijednosti koje se ne mijenjaju tijekom izvođenja cijele vaše skripte. U nedostatku bilo kakvih alternativa, većina konstanti je deklarirana pomoću varijabli.

Primjer deklaracije konstante pomoću varijable:

var DANI U TJEDNU = 7;

var DAYSINWEEK = 7;

Ovo je i opasno i nepraktično jer vam omogućuje promjenu vrijednosti varijable DAYSINWEEK u vašoj skripti u bilo kojem trenutku. Programeri su osmislili razne načine za razlikovanje varijabli koje su naizgled konstante od običnih varijabli u JavaScriptu, u rasponu od imenovanja varijabli SAMO VELIKIM SLOVIMA (najbolja praksa) do rješenja o kojima ću govoriti kasnije. Srećom, u Najnovija verzija ECMAScript (specifikacija koja je standard) uveo je ovu konstantu:

JavaScript. Brzi početak

const DANI U TJEDNU = 7;

const DANI U TJEDNU = 7;

I sada se DAYSINWEEK može pristupiti kao varijabli, ali nikada nećete moći promijeniti njezinu vrijednost:

console.log(DANI U TJEDNU); > 7 DANA U TJEDNU = 8; > pogreška

konzola. log(DANI U TJEDNU);

DANI U TJEDNU = 8 ;

> pogreška

Jednom kada je konstanta deklarirana (konstante moraju biti inicijalizirane ključnom riječi const, nakon čega slijedi naziv konstante koji slijedi pravila imenovanja varijabli), njezino će ime biti rezervirano: više ne možete imenovati varijablu DAYSINWEEK i imati konstantu s istim imenom , ili obrnuto.

Ključna riječ const ima dobra podrška u modernim preglednicima: IE11 i Spartan, Firefox 31+, Opera 12+, Safari 5.1.7+, iOS 7 i noviji, uz Chrome 36+. Međutim, postoji nekoliko važnih upozorenja:

Chrome ne podržava prikazivanje pogreške prilikom pokušaja prepisivanja konstante. Vrijednost konstante neće se promijeniti ni u kojem slučaju, ali neiskusni programer može pomisliti da je nova vrijednost primijenjena jer nije prikazana pogreška.

JavaScript. Brzi početak

Naučite osnove JavaScripta uz praktični primjer izrade web aplikacije.

Konstante se ne stvaraju novo područje vidljivost u Webkitu. Oni. konstante mogu biti vidljive izvan trenutnog opsega.

Firefox 35 i starije verzije omogućuju promjenu vrijednosti const u hodu. To je popravljeno u Firefoxu 36+.

Također treba napomenuti da se problemi s Webkitom javljaju samo ako se ne koristi strogi način rada (o čemu će biti riječi u sljedećem članku).

Je li sada moguće koristiti ključnu riječ const u stvarnim projektima?

Odabir hoćete li ili ne koristiti ključnu riječ const u svom kodu ovisit će o nekoliko čimbenika: najvažnije je koje verzije preglednika posjetitelji vaše stranice koriste, budući da će se korištenje ključne riječi const smatrati pogreškom u preglednicima kao što je IE10 . Ako želite koristiti ključnu riječ const u razvoju, ali niste spremni koristiti je u stvarnim projektima, tada imate nekoliko opcija:

Opcija 1: koristite transpiler ("transpiler")

Transpilers, kao što ime sugerira, transformiraju vaš kod tijekom kompajliranja u drugi jezik: u ovom slučaju, iz verzije ES6 specifikacije (koja je uvela ključnu riječ const) u ES5. To vam omogućuje pisanje koda u više nova verzija jeziku, ali stvarni će projekt koristiti verziju koja je kompatibilna sa širim rasponom preglednika. Skladao je Eddie Osmani