Definiranje funkcij v JavaScriptu. Konstruktorji in nov

Funkcija je blok kode, ki izvede dejanje ali vrne vrednost. Funkcije so koda po meri, ki jo je mogoče ponovno uporabiti; Zato zaradi funkcij postanejo programi modularni in bolj produktivni.

Ta vadnica ponuja več načinov za definiranje in klicanje funkcije ter uporabo funkcijskih parametrov v JavaScriptu.

Definicija funkcije

Funkcije so definirane ali deklarirane s ključno besedo function. Sintaksa funkcije v JavaScriptu izgleda takole:

ime funkcijeOfFunction() (
// Koda za izvedbo
}

Deklaracija funkcije se začne s ključno besedo function, ki ji sledi ime funkcije. Imena funkcij sledijo istim pravilom kot imena spremenljivk: lahko vsebujejo črke, številke, podčrtaje in znake za dolar ter so pogosto napisana s črkami. Imenu sledi niz oklepajev, ki jih je mogoče uporabiti za neobvezne parametre. Funkcijska koda je v zavitih oklepajih, kot stavek for ali if.

Kot ste morda opazili, vrednost parametra imena ni dodeljena v kodi; to se naredi ob klicu funkcije. Pri klicu funkcije se uporabniško ime posreduje kot argument. Argument je dejanska vrednost, ki je posredovana funkciji (v tem primeru uporabniško ime, na primer 8host).

// Prikliči funkcijo pozdrava z "8host" kot argumentom
pozdravi ("8host");

Vrednost 8host je posredovana funkciji prek parametra name. Zdaj bo parameter imena predstavljal to vrednost v tej funkciji. Koda za datoteko greetUser.js izgleda takole:

// Inicializacija funkcije pozdrava po meri
funkcija pozdravi (ime) (
console.log(`Pozdravljeni, $(ime)!`);
}
// Prikliči funkcijo pozdrava z "8host" kot argumentom
pozdravi ("8host");

Ko zaženete ta program, boste dobili naslednje rezultate:

Zdaj veste, kako ponovno uporabiti funkcijo.

Poleg parametrov je mogoče znotraj funkcij deklarirati spremenljivke. Te spremenljivke se imenujejo lokalne in obstajajo samo znotraj svojega funkcijskega bloka. Obseg spremenljivke določa razpoložljivost spremenljivk; Spremenljivke, ki so definirane znotraj funkcije, niso dostopne zunaj funkcije, vendar jih je mogoče uporabiti tolikokrat, kolikorkrat je funkcija, ki ji pripadajo, uporabljena v programu.

Vračanje vrednosti

V funkciji lahko uporabite več kot en parameter. Funkciji lahko posredujete več vrednosti in vrnete vrednost. Ustvarite na primer datoteko sum.js in v njej deklarirajte funkcijo, ki bo našla vsoto dveh vrednosti, x in y.

// Inicializacija funkcije dodajanja
funkcija add(x, y) (
vrni x + y;
}

dodaj (9, 7);

Ta koda definira funkcijo s parametroma x in y. Funkcija nato dobi vrednosti 9 in 7. Zaženite program:

Program bo seštel dobljeni vrednosti 9 in 7 ter vrnil rezultat 16.

Kdaj uporabiti ključna beseda return, funkcija preneha z izvajanjem in vrne vrednost izraza. V tem primeru bo brskalnik prikazal vrednost v konzoli, vendar to ni isto kot uporaba console.log() za izhod v konzolo. Ko jo pokličemo, funkcija izpiše vrednost tja, od koder je bila poklicana. To vrednost je mogoče uporabiti ali postaviti v spremenljivko.

Funkcijski izrazi

V prejšnjem razdelku ste deklarirali funkcijo, ki sešteje dve števili in vrne nastalo vrednost. Izraz funkcije lahko ustvarite tudi tako, da spremenljivki dodelite funkcijo.

S prejšnjo funkcijo uporabite dobljeno vrednost za spremenljivko vsote.

// Dodeli funkcijo dodajanja konstanti vsote
const sum = funkcija add(x, y) (
vrni x + y;
}
// Prikliči funkcijo za iskanje vsote
vsota(20, 5);
25

Zdaj je konstantna vsota funkcija. Ta izraz je mogoče skrajšati tako, da ga spremenite v anonimno funkcijo (tako se imenujejo funkcije brez parametra imena). Trenutno se funkcija imenuje add, vendar je v izrazih funkcije ime običajno izpuščeno.

// Dodeli funkcijo konstanti vsote
const sum = function(x, y) (
vrni x + y;
}
// Prikliči funkcijo za iskanje vsote
vsota (100, 3);
103

Zdaj funkcija nima več imena, postala je anonimna.

Poimenovane funkcijske izraze je mogoče uporabiti za odpravljanje napak.

Puščične funkcije

Do sedaj so bile funkcije definirane s ključno besedo function. Vendar pa obstaja novejši in bolj jedrnat način za definiranje funkcije – puščične funkcije ECMAScript 6. Puščične funkcije so predstavljene z znakom enačaja, ki mu sledi znak za več kot: =>.

Puščične funkcije so vedno anonimne in so vrsta funkcijskega izraza. Poskusite ustvariti osnovno puščično funkcijo za iskanje vsote dveh števil.

// Definiraj funkcijo množenja
const pomnoži = (x, y) => (
vrni x * y;
}

pomnoži (30, 4);
120

Namesto pisne funkcije lahko preprosto uporabite => simbole.

Če ima funkcija samo en parameter, lahko oklepaje izpustite. V naslednjem primeru funkcija kvadrira x, zato kot argument potrebuje samo eno število.

// Definiraj kvadratno funkcijo
const kvadrat = x => (
vrnitev x * x;
}
// Prikliči funkcijo za iskanje izdelka
kvadrat (8);
64

Opomba: Če puščična funkcija nima parametrov, morate dodati prazne oklepaje ().

Puščične funkcije, ki so sestavljene samo iz stavka return, je mogoče skrajšati. Če je funkcija sestavljena samo iz ene povratne vrstice, lahko izpustite zavite oklepaje in stavek return, kot v spodnjem primeru.

// Definiraj kvadratno funkcijo
const kvadrat = x => x * x;
// Prikliči funkcijo za iskanje izdelka
kvadrat (10);
100

Zaključek

Ta vadnica vas uvede v deklariranje funkcij, funkcijskih izrazov in puščične funkcije, vračanje vrednosti in dodeljevanje funkcijskih vrednosti spremenljivkam.

Funkcija je blok kode, ki vrne vrednost ali izvede dejanje.

Oznake:

Spremenljivke in konstante v JavaScriptu. Deklaracija spremenljivk in dodeljevanje vrednosti zanje. Globalne in lokalne spremenljivke. Uporaba konstant

Deklariranje spremenljivk v JavaScriptu

Imena spremenljivk v JavaScriptu so lahko sestavljena iz črk, številk, znaka $ in znaka _, ime spremenljivke pa se ne sme začeti s številko. Upoštevajte, da je JavaScript občutljiv na velike in male črke ter da sta spremenljivki a1 in A1 različni spremenljivki. Uporaba cirilice ni priporočljiva, čeprav je možna.
Spremenljivke v JavaScriptu so deklarirane s ključno besedo var:

Var Peremennaya_1 var Peremennaya_2

V JavaScriptu ni priporočljivo uporabljati spremenljivk brez deklaracije. To je možno, vendar lahko povzroči napake.

Dodeljevanje vrednosti spremenljivkam

Dodeljevanje vrednosti deklariranim spremenljivkam v JavaScriptu:

Peremennaya_1 = 25 Peremennaya_2 = "Dodeljeno besedilo je v ravnih narekovajih"

Spremenljivkam lahko dodelite vrednost takoj po deklaraciji:

Var Peremennaya_1 = 25 var Peremennaya_2 = "Dodeljeno besedilo je v ravnih narekovajih"

Vrednost spremenljivke v JavaScriptu se lahko spremeni med izvajanjem programa. Ko pišete besedilo v spremenljivko, mora biti v narekovajih.

Lokalne in globalne spremenljivke

Če je spremenljivka deklarirana znotraj funkcije, potem je lokalni in bo na voljo (vidno) samo znotraj te funkcije. Ko funkcija zapre, se lokalne spremenljivke v JavaScriptu uničijo, tako da lahko uporabite spremenljivke z istim imenom v različnih funkcijah.

Če je spremenljivka deklarirana zunaj funkcij, potem je globalno in bo na voljo (viden) v vseh funkcijah na strani. Globalne spremenljivke se v JavaScriptu uničijo, ko je stran zaprta.

Konstante v JavaScriptu

Konstante so zasnovani tako, da olajšajo delo z vašo kodo, ko morate uporabiti podvojene vrednosti ali izraze. Dovolj je, da enkrat nastavite vrednost konstante in jo lahko uporabljate, kolikor želite, tako da jo vstavite v kodo svojih programov. JavaScript nima ključne besede za deklaracijo konstant; namesto konstant se uporabljajo navadne spremenljivke. Za razlikovanje konstant od spremenljivk jih običajno označimo z velikimi tiskanimi črkami, po potrebi s podčrtajem:

Varianta DRUG_CHELOVEKA = "Pes"

Navedeni primer konstante ni povsem popoln, saj si je besedo "Pes" že enostavno zapomniti in vstaviti, kjer je potrebno. S konstantami v JavaScriptu lahko posnamete in vstavite bolj zapletene vrednosti, na primer kode, ki si jih je težko zapomniti, nize znakov, dolgo besedilo, spletne naslove, naslove E-naslov, telefonske številke, različne koeficiente.

V JavaScriptu je mogoče konstante prepisati kot spremenljivke, vendar če to storite, se pomen konstant izgubi.

V tem članku se boste naučili, kako določiti konstante v JavaScriptu z uporabo ključne besede const.

ES6 ponuja nov način deklariranja konstant s ključno besedo konst. Ključna beseda konst ustvari sklic na vrednost samo za branje.

Const VARIABLE_NAME = vrednost;

Po dogovoru, Konstantni identifikatorji JavaScript so velike črke.

Ključna beseda konst izgleda kot ključ beseda naj v tem, da ustvari spremenljivke z obsegom bloka, vendar vrednosti, deklarirane z const, ni mogoče spremeniti.

Spremenljivke, deklarirane s ključno besedo pustiti so spremenljiv. To pomeni, da lahko kadar koli spremenite njihove vrednosti, kot je prikazano v naslednjem primeru.

Naj bo v = 10;
v = 20;
v = v + 5;
console.log(v); // 35

Vendar spremenljivke, ustvarjene s ključno besedo konst, so nespremenljivi. Z drugimi besedami, ne morete jih dodeliti drugim vrednostim. Poskus vnovične dodelitve konstantne spremenljivke bo povzročil napako tipa TypeError .

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

Poleg tega spremenljivka, ki je deklarirana s ključno besedo const, je treba takoj inicializirati z vrednostjo. Naslednji primer kliče SyntaxError(sintaksna napaka) zaradi odsotnosti inicializatorja v deklaraciji konstantne spremenljivke.

Const RDEČA; // SyntaxError

Kot smo že omenili, kot so spremenljivke, deklarirane s ključno besedo pustiti, spremenljivke, deklarirane s ključno besedo const, imajo obseg bloka.

To je vse, v naslednjem članku pa bomo govorili o uporabi ključne besede konst z literali objektov v JavaScript.

Ko mora program shraniti vrednost za kasnejšo uporabo, je ta vrednost dodeljena spremenljivki. Spremenljivka je preprosto simbolično ime za vrednost, ki omogoča pridobitev vrednosti po imenu, to pomeni, da ko program poda ime spremenljivke, se vrednost nadomesti z njim.

Spremenljivka je dobila ime zaradi dejstva, da je njeno vrednost mogoče spremeniti med izvajanjem programa.

Konstante

Konstanta je preprosto simbolično ime za vrednost. Konstanta omogoča sklicevanje na vrednost po imenu, kar pomeni, da ko program poda ime konstante, je vrednost zamenjana namesto tega. Konstante se uporabljajo za shranjevanje podatkov, ki se med izvajanjem programa ne smejo spreminjati.

Preden lahko konstanto uporabimo, jo je treba deklarirati. Konstante so deklarirane s ključno besedo const, ki ji sledi ime konstante. Za razlikovanje konstant od spremenljivk v programski kodi je bilo dogovorjeno, da imena konstant napišemo z velikimi črkami:

Const MAX = 10;

Ko je konstanta enkrat ustvarjena, bo poskus redefiniranja v spremenljivko ali poskus dodelitve vrednosti obstoječi konstanti povzročil napako.

Zakaj so potrebne spremenljivke in konstante?

Pri tem vam pomagajo spremenljivke in konstante programsko kodo jasneje. Poglejmo majhen primer:

Skupna cena = 2,42 + 4,33; // Skupna cena

Številke tukaj lahko pomenijo karkoli. Da bo jasno, kaj točno je tu povzeto, lahko spremenljivki (ali konstanti) candyPrice (cena sladkarij) dodelite vrednost 2,42, spremenljivki (ali konstanti) oilPrice (cena nafte) pa 4,33:

TotalPrice = candyPrice + oilPrice;

Zdaj, namesto da bi se spomnili, kaj te vrednosti pomenijo, lahko vidite, da skript sešteje ceno sladkarij k ceni masla.

Poleg tega spremenljivke in konstante pomagajo prihraniti čas pri odpravljanju napak v skriptu. Namesto da povsod uporabljate isti literal, ga lahko dodelite spremenljivki (ali konstanti) na začetku skripta in nato uporabite spremenljivko (ali konstanto) namesto literala v preostali kodi skripta. Če se kasneje sprejme odločitev o spremembi vrednosti, potem spremembe v kodi ne bodo treba narediti na več mestih, ampak samo na enem mestu - tam, kjer je bila vrednost dodeljena spremenljivki (ali konstanti).

Obseg konstant

Za konstante veljajo ista pravila kot za spremenljivke, deklarirane s ključno besedo let:

Const 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 in referenčne vrste

Ko je konstanti dodeljena vrednost referenčnega tipa, sklic na vrednost postane nespremenljiv, sama vrednost pa ostane spremenljiva:

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

Od avtorja: Morda bo to presenetljivo, vendar JavaScript že dolgo nima podpore za konstante, tj. registrirane vrednosti, ki se med izvajanjem celotnega skripta ne spremenijo. Ker ni bilo drugih možnosti, je bila večina konstant deklariranih s spremenljivkami.

Primer deklaracije konstante z uporabo spremenljivke:

var DAYSINWEEK = 7;

var DAYSINWEEK = 7;

To je nevarno in nepraktično, ker vam omogoča, da kadar koli spremenite vrednost spremenljivke DAYSINWEEK v vašem skriptu. Razvijalci so iznašli različne načine za razlikovanje spremenljivk, ki so navidezno konstante, od običajnih spremenljivk v JavaScriptu, od poimenovanja spremenljivk SAMO z VELIKimi ČRKAMI (najboljša praksa) do rešitev, o katerih bom govoril kasneje. Na srečo, v Najnovejša različica ECMAScript (specifikacija, ki je standard) je predstavil to konstanto:

JavaScript. Hiter začetek

const DAYSINWEEK = 7;

const DAYSINWEEK = 7;

Zdaj lahko do DAYSINWEEK dostopate kot do spremenljivke, vendar nikoli ne boste mogli spremeniti njene vrednosti:

console.log(DAYSINWEEK); > 7 DNI V TEDNU = 8; > napaka

konzola. dnevnik(DAYSINWEEK);

DNI V TEDNU = 8;

> napaka

Ko je konstanta deklarirana (konstante morajo biti inicializirane s ključno besedo const, ki ji sledi ime konstante, ki sledi pravilom poimenovanja spremenljivk), bo njeno ime rezervirano: ne morete več poimenovati spremenljivke DAYSINWEEK in imeti konstante z istim imenom , ali obratno.

Ključna beseda const ima dobra podpora v sodobnih brskalnikih: IE11 in Spartan, Firefox 31+, Opera 12+, Safari 5.1.7+, iOS 7 in novejši ter Chrome 36+. Vendar obstaja nekaj pomembnih opozoril:

Chrome ne podpira prikaza napake pri poskusu prepisa konstante. Vrednost konstante v nobenem primeru ne bo spremenjena, toda neizkušeni razvijalec lahko misli, da je bila uporabljena nova vrednost, ker ni bila prikazana nobena napaka.

JavaScript. Hiter začetek

Naučite se osnov JavaScripta s praktičnim primerom, kako ustvariti spletno aplikacijo.

Konstante niso ustvarjene novo območje vidnost v Webkitu. Tisti. konstante so lahko vidne zunaj trenutnega obsega.

Firefox 35 in starejše vam omogočajo spreminjanje vrednosti const sproti. To je bilo popravljeno v Firefoxu 36+.

Upoštevati je treba tudi, da se težave z Webkitom pojavijo le, če ni uporabljen strogi način (o čemer bomo razpravljali v prihodnjem članku).

Ali je zdaj mogoče uporabiti ključno besedo const v resničnih projektih?

Izbira, ali boste v kodi uporabili ključno besedo const ali ne, bo odvisna od več dejavnikov: najpomembnejše je, katere različice brskalnikov uporabljajo obiskovalci vašega spletnega mesta, saj bo uporaba ključne besede const obravnavana kot napaka v brskalnikih, kot je IE10. . Če želite uporabiti ključno besedo const v razvoju, vendar je niste pripravljeni uporabiti v resničnih projektih, potem imate več možnosti:

1. možnost: uporabite transpiler ("transpiler")

Transpilers, kot že ime pove, pretvori vašo kodo v času prevajanja v drug jezik: v tem primeru iz različice specifikacije ES6 (ki je uvedla ključno besedo const) v ES5. To vam omogoča pisanje kode v več nova različica jezik, vendar bo dejanski projekt uporabljal različico, ki je združljiva s širšim naborom brskalnikov. Skladal Eddie Osmani