Definiranje funkcija u JavaScript-u. Konstruktori i novi

Funkcija je blok koda koji izvodi radnju ili vraća vrijednost. Funkcije su prilagođeni kod koji se može ponovo 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 JavaScript-u.

Definicija funkcije

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

funkcija nameOfFunction() (
// Kod koji treba izvršiti
}

Deklaracija funkcije počinje ključnom riječi funkcija nakon koje slijedi naziv funkcije. Imena funkcija slijede ista pravila kao i imena varijabli: mogu sadržavati slova, brojeve, donje crte i znakove dolara i često su napisana velikim slovima. Nakon imena slijedi skup zagrada koje se mogu koristiti za opcione parametre. Kôd funkcije je sadržan u vitičastim zagradama, poput izraza 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).

// Pozovi funkciju greet sa "8host" kao argumentom
greet("8host");

Vrijednost 8host se prosljeđuje funkciji preko parametra name. Sada će parametar name predstavljati ovu vrijednost u ovoj funkciji. Kod za datoteku greetUser.js izgleda ovako:

// Inicijaliziranje prilagođene funkcije pozdrava
funkcija greet(ime) (
console.log(`Zdravo, $(ime)!`);
}
// Pozovi funkciju greet sa "8host" kao argumentom
greet("8host");

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

Sada znate kako ponovo koristiti funkciju.

Osim parametara, varijable se mogu deklarirati unutar funkcija. Ove varijable se nazivaju lokalnim i postoje samo unutar svog funkcionalnog bloka. Opseg varijable određuje dostupnost varijabli; Varijablama koje su definirane unutar funkcije nisu dostupne 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, kreirajte datoteku sum.js i u njoj deklarirajte funkciju koja će pronaći zbir dvije vrijednosti, x i y.

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

dodaj(9, 7);

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

Program će dodati rezultirajuće 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, pretraživač će prikazati vrijednost u konzoli, ali to nije isto kao korištenje console.log() za izlaz na konzolu. Kada se pozove, funkcija daje vrijednost odakle je pozvana. Ova vrijednost se može koristiti ili staviti u varijablu.

Izrazi funkcije

U prethodnom odeljku deklarisali ste funkciju koja dodaje dva broja i vraća rezultujuću vrednost. Također možete kreirati izraz funkcije dodjeljivanjem funkcije varijabli.

Koristite prethodnu funkciju da primijenite rezultirajuću vrijednost na varijablu zbroja.

// Dodijeli funkciju dodavanja konstanti sume
const zbroj = funkcija add(x, y) (
return x + y;
}
// Pozivamo funkciju da pronađemo zbroj
zbir(20, 5);
25

Sada je konstantna suma funkcija. Ovaj izraz se može skratiti pretvaranjem u anonimnu funkciju (ovako se nazivaju funkcije bez parametra imena). Trenutno se funkcija zove add, ali u izrazima funkcije ime se obično izostavlja.

// Dodijeli funkciju konstanti sume
const zbroj = funkcija (x, y) (
return x + y;
}
// Pozivamo funkciju da pronađemo zbroj
zbir(100, 3);
103

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

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

Funkcije sa strelicama

Do sada su funkcije definirane pomoću ključne riječi funkcije. Međutim, postoji noviji i sažetiji način definiranja funkcije - funkcije strelice ECMAScript 6. Funkcije strelice su predstavljene znakom jednakosti praćen znakom veće od: =>.

Funkcije sa strelicama su uvijek anonimne i vrsta su izraza funkcije. Pokušajte kreirati osnovnu funkciju strelice da pronađete zbir dva broja.

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

množi (30, 4);
120

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

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

// Definiraj kvadratnu funkciju
konst kvadrat = x => (
return x * x;
}
// Pozovite funkciju da pronađete proizvod
kvadrat(8);
64

Bilješka: Ako funkcija strelice nema parametre, morate dodati prazne zagrade ().

Funkcije strelice koje se sastoje samo od povratne izjave mogu se skratiti. Ako se funkcija sastoji od samo jedne povratne linije, možete izostaviti vitičaste zagrade i naredbu return, kao u primjeru ispod.

// Definiraj kvadratnu funkciju
const square = x => x * x;
// Pozovite funkciju da pronađete proizvod
kvadrat(10);
100

Zaključak

Ovaj vodič vas upoznaje sa deklarisanjem funkcija, izraza funkcija i funkcije strelica, vraćanje vrijednosti i dodjeljivanje vrijednosti funkcije varijablama.

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

Tagovi:

Varijable i konstante u JavaScript-u. Deklarisanje varijabli i dodeljivanje vrednosti njima. Globalne i lokalne varijable. Korištenje konstanti

Deklarisanje varijabli u JavaScript-u

Imena varijabli u JavaScript-u mogu se sastojati od slova, brojeva, znaka $ i znaka _, a ime varijable ne može poč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 su deklarirane ključnom riječi var:

Var Peremennaya_1 var Peremennaya_2

Nije preporučljivo koristiti varijable u JavaScriptu bez deklaracije. To je moguće, ali može dovesti do grešaka.

Dodjeljivanje vrijednosti varijablama

Dodjeljivanje vrijednosti deklariranim varijablama u JavaScript-u:

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

Možete dodijeliti vrijednost varijablama odmah nakon deklaracije:

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

Vrijednost varijable u JavaScript-u može se promijeniti tokom izvršavanja programa. Kada pišete tekst u varijablu, on mora biti zatvoren u ravnim navodnicima.

Lokalne i globalne varijable

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

Ako je varijabla deklarirana izvan funkcija, onda jeste globalno i biće dostupan (vidljiv) u svim funkcijama unutar stranice. Globalne varijable se uništavaju u JavaScriptu kada se stranica zatvori.

Konstante u JavaScript-u

Konstante dizajnirani su da olakšaju rad s vašim kodom kada morate koristiti duple 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 se koriste regularne varijable. Da bismo razlikovali konstante od varijabli, obično se označavaju velikim slovima, koristeći donju crtu ako je potrebno:

Var DRUG_CHELOVEKA = "Pas"

Navedeni primjer konstante nije u potpunosti potpun, budući da je riječ "pas" već lako zapamtiti i umetnuti gdje je potrebno. Možete koristiti konstante u JavaScript-u za snimanje i umetanje složenijih vrijednosti, na primjer, teško pamtljive kodove, skupove znakova, dugi tekst, web adrese, adrese Email, brojevi telefona, razni koeficijenti.

U JavaScript-u, konstante se mogu prepisati kao varijable, ali ako to učinite, onda se značenje konstanti gubi.

U ovom članku ćete naučiti kako odrediti konstante u JavaScript-u koristeći ključnu riječ const.

ES6 pruža novi način deklariranja konstanti pomoću ključne riječi konst. Ključna riječ konst kreira 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 sa const, ne može se promijeniti.

Varijable deklarirane s 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;
console.log(v); // 35

Međutim, varijable kreirane pomoću ključne riječi konst, su nepromjenjivi. Drugim riječima, ne možete ih dodijeliti različitim vrijednostima. Pokušaj ponovnog dodjeljivanja konstantne varijable rezultirat će greškom u tipu TypeError .

Konst POREZ = 0,1;
POREZ = 0,2; //TypeError

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

Const RED; // Sintaksna greška

Kao što je ranije spomenuto, slične varijable deklarirane s ključnom riječi neka, varijable deklarirane s ključnom riječi const, imaju opseg bloka.

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

Kada program treba da pohrani vrijednost da bi je kasnije koristio, ta vrijednost se dodjeljuje varijabli. Varijabla je jednostavno simboličko ime za vrijednost koja pruža mogućnost dobivanja vrijednosti po imenu, to jest, kada program specificira ime varijable, vrijednost se zamjenjuje za nju.

Varijabla je dobila ime zbog činjenice da se njena vrijednost može mijenjati tokom izvršavanja programa.

Konstante

Konstanta je jednostavno simbolički naziv za vrijednost. Konstanta omogućava upućivanje na vrijednost po imenu, što znači da kada program specificira ime konstante, vrijednost se umjesto toga zamjenjuje. Konstante se koriste za pohranjivanje podataka koji se ne bi trebali mijenjati tokom izvršavanja programa.

Prije nego što se konstanta može koristiti, mora biti deklarirana. Konstante se deklariraju pomoću ključne riječi const iza koje slijedi ime konstante. Kako bi se razlikovale konstante od varijabli u programskom kodu, dogovoreno je da se konstantama daju imena napisana velikim slovima:

Const MAX = 10;

Jednom kada je konstanta kreirana, pokušaj ponovnog definiranja varijable ili pokušaj dodjeljivanja vrijednosti postojećoj konstanti će uzrokovati greš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 šta. Da bi bilo jasno šta se ovde tačno sumira, vrednost 2,42 može se dodeliti promenljivoj (ili konstantnoj) candyPrice (cena bombona), a 4,33 promenljivoj (ili konstantnoj) oilPrice (cena ulja):

TotalPrice = candyPrice + oilPrice;

Sada, umjesto da zapamtite šta ove vrijednosti znače, možete vidjeti da skripta zbraja cijenu slatkiša sa cijenom putera.

Takođe, varijable i konstante pomažu u uštedi vremena prilikom otklanjanja grešaka u skripti. Umjesto da svuda 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 s ključnom riječi let:

Const MAX = 5; // Globalna konstanta ( const MAX = 10; // Blok konstanta 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 referentni tipovi

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 JavaScriptu odavno nedostaje podrška za konstante, tj. registrovane vrijednosti koje se ne mijenjaju tokom izvršavanja cijele vaše skripte. U nedostatku ikakvih alternativa, većina konstanti je deklarirana pomoću varijabli.

Primjer deklariranja konstante pomoću varijable:

var DAYSINWEEK = 7;

var DAYSINWEEK = 7 ;

Ovo je i opasno i nepraktično jer vam omogućava da promijenite vrijednost varijable DAYSINWEEK u vašoj skripti u bilo kojem trenutku. Programeri su smislili različite načine da razlikuju varijable koje su naizgled konstante od regularnih varijabli u JavaScriptu, u rasponu od imenovanja varijabli SAMO VELIKIM SLOVIMA (najbolja praksa) do rješenja o kojima ću govoriti kasnije. Srećom, u najnoviju verziju ECMAScript (specifikacija koja je standard) uvodi ovu konstantu:

JavaScript. Brzi početak

const DAYSINWEEK = 7;

const DAYSINWEEK = 7 ;

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

console.log(DAYSINWEEK); > 7 DAYSINWEEK = 8; > greška

konzola. dnevnik (DAYSINWEEK);

DAYSINWEEK = 8 ;

> greška

Jednom kada je konstanta deklarirana (konstante moraju biti inicijalizirane ključnom riječi const, nakon čega slijedi ime konstante koje slijedi pravila imenovanja varijable), njeno ime će 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 pretraživačima: IE11 i Spartan, Firefox 31+, Opera 12+, Safari 5.1.7+, iOS 7 i noviji, zajedno sa Chrome 36+. Međutim, postoji nekoliko važnih upozorenja:

Chrome ne podržava prikazivanje greške pri pokušaju prepisivanja konstante. Vrijednost konstante se neće mijenjati ni u kojem slučaju, ali neiskusni programer može pomisliti da je nova vrijednost primijenjena jer nije izašla greška.

JavaScript. Brzi početak

Naučite osnove JavaScripta s praktičnim primjerom kako napraviti web aplikaciju.

Konstante se ne kreiraju novo područje vidljivost u Webkit-u. One. konstante mogu biti vidljive izvan trenutnog opsega.

Firefox 35 i stariji vam omogućavaju da promijenite vrijednost const u hodu. Ovo 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 narednom članku).

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

Izbor da li ćete koristiti ključnu riječ const u vašem kodu ili ne ovisit će o nekoliko faktora: najvažnije je koje verzije pretraživača koriste posjetitelji vaše stranice, budući da će se korištenje ključne riječi const smatrati greškom u pretraživačima kao što je IE10. . Ako želite koristiti ključnu riječ const u razvoju, ali niste spremni da je koristite u stvarnim projektima, onda imate nekoliko opcija:

Opcija 1: koristite transpiler ("transpiler")

Transpileri, kao što ime govori, transformišu vaš kod u vrijeme kompajliranja u drugi jezik: u ovom slučaju, iz verzije ES6 specifikacije (koja je uvela ključnu riječ const) u ES5. Ovo vam omogućava da pišete kod u više nova verzija jezik, ali stvarni projekat će koristiti verziju koja je kompatibilna sa širim spektrom pretraživača. Komponovao je Eddie Osmani