JavaScript. Varijable (globalne, lokalne, konstante). Eval je zao

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

U ovom članku ćete naučiti kako odrediti konstante u JavaScriptu koristeći ključna riječ konst.

ES6 pruža novi način deklaracije 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 SyntaxError(sintaktička greška) zbog odsustva inicijalizatora u deklaraciji konstantne varijable.

Const RED; // SyntaxError

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.

Posljednje ažuriranje: 04.05.2018

Varijable se koriste za pohranjivanje podataka u programu. Varijable su dizajnirane da pohranjuju neke privremene podatke ili podatke koji mogu promijeniti svoju vrijednost tokom rada. Ključne riječi var i let koriste se za kreiranje varijabli. Na primjer, deklarirajmo varijablu myIncome:

Var myIncome; // druga opcija neka myIncome2;

Svaka varijabla ima ime. Ime je nasumični niz alfanumeričkih znakova, donje crte (_) ili znaka dolara ($), a imena ne smiju početi numeričkim znakovima. Odnosno, možemo koristiti slova, brojeve i donje crte u imenu. Međutim, svi ostali znakovi su zabranjeni.

na primjer, ispravna imena varijable:

$commission someVariable product_Store prihod2 myIncome_from_deposit

Sljedeći nazivi su netačni i ne mogu se koristiti:

222lol @someVariable my%percent

Također, ne možete dati imena varijablama koja odgovaraju rezerviranim ključnim riječima. Nema mnogo ključnih riječi u JavaScriptu, tako da ovo pravilo nije teško pratiti. Na primjer, sljedeći naziv bi bio netačan jer je for ključna riječ u JavaScript-u:

Var for;

Lista rezerviranih riječi u JavaScript-u:

apstraktno, boolean, break, byte, case, catch, char, klasa, const, nastavak, debugger, default, delete, do, double, else, enum, export, extends, false, final, konačno, float, for, funkcija, goto, if, implements, import, in, instanceof, int, inteface, long, native, new, null, package, private, protected, public, return, short, static, super, switch, synchronized, this, throw, throws, prolazno, istina, pokušaj, typeof, var, volatile, void, while, with

Prilikom imenovanja varijabli, imajte na umu da je JavaScript velika i mala slova jezik, odnosno u sljedećem kodu su deklarirane dvije različite varijable:

Var myIncome; var MyIncome;

Možete definirati nekoliko varijabli odjednom, odvojenih zarezima:

Var myIncome, procenat, suma; neka a, b, c;

Koristeći znak jednakosti (takođe se naziva operator dodjeljivanja) možete dodijeliti bilo koju vrijednost varijabli:

Var prihod = 300; neka cijena = 76;

Proces dodjeljivanja početne vrijednosti varijabli naziva se inicijalizacija.

Sada će varijabla prihoda pohraniti broj 300, a varijabla cijene će pohraniti broj 76.

Odlična stvar kod varijabli je da možemo promijeniti njihovu vrijednost:

Var prihod = 300; prihod = 400; console.log(income); neka cijena = 76; cijena = 54; console.log(cijena);

Konstante

Koristeći ključnu riječ const, možete definirati konstantu koja, poput varijable, pohranjuje vrijednost, ali ta vrijednost se ne može promijeniti.

Konst stopa = 10;

Ako pokušamo promijeniti njegovu vrijednost, naići ćemo na grešku:

Konst stopa = 10; stopa = 23; // greška, stopa je konstanta, tako da ne možemo promijeniti njenu vrijednost

Također je vrijedno napomenuti da, pošto ne možemo promijeniti vrijednost konstante, ona mora biti inicijalizirana, odnosno, kada je definiramo, moramo joj dati početnu vrijednost. Ako to ne učinimo, opet ćemo naići na grešku:

konstantna stopa; // greška, stopa nije inicijalizirana

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; 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)!`);
}
// Pozivamo greet funkciju 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 se koristi ključna riječ return, funkcija prestaje da se izvršava i vraća vrijednost izraza. U ovom slučaju, pretraživač će prikazati vrijednost u konzoli, međutim 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 sumi konstanti
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

Napomena: 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 s deklariranjem funkcija, izraza funkcija i funkcija strelica, vraćanjem vrijednosti i dodjeljivanjem vrijednosti funkcija varijablama.

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

Tagovi:

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 najnovija verzija 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 konvencije o imenovanju varijabli), 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 dobru podršku u modernim pretraživačima: IE11 i Spartan, Firefox 31+, Opera 12+, Safari 5.1.7+, iOS 7 i novije verzije, 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 ispisana greška.

JavaScript. Brzi početak

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

Konstante ne stvaraju novi opseg 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 Firefox verzije 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

Veza