JavaScript: varijable i konstante. osnove javascripta dodjeljivanje vrijednosti varijablama

Zadnje ažuriranje: 05.04.2018

Varijable se koriste za pohranu podataka u programu. Varijable su dizajnirane za pohranu nekih privremenih podataka ili podataka koji mogu promijeniti svoju vrijednost tijekom rada. Ključne riječi var i let koriste se za stvaranje varijabli. Na primjer, deklarirajmo varijablu myIncome:

Var myIncome; // druga opcija neka myIncome2;

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

Na primjer, ispravna imena varijabli su:

$provizija someVariable product_Store earnings2 myIncome_from_deposit

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

222lol @someVariable moj%postotak

Također, varijablama ne možete dati imena koja odgovaraju rezerviranim ključnim riječima. U JavaScriptu nema mnogo ključnih riječi, pa ovo pravilo nije teško pratiti. Na primjer, sljedeće ime će biti netočno, jer za - ključna riječ u JavaScriptu:

Var za;

Popis rezerviranih riječi u JavaScriptu:

abstract, boolean, break, byte, case, catch, char, class, const, continue, debugger, default, delete, do, double, else, enum, export, extends, false, final, finally, float, for, function, 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, istinito, pokušaj, tipof, var, volatile, void, dok, sa

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

Var myIncome; var MyIncome;

Možete definirati nekoliko varijabli odjednom, odvojenih zarezima:

Var myIncome, postotak, zbroj; neka a, b, c;

Korištenje znaka jednakosti (koji se naziva i operator dodjele) varijabli možete dodijeliti bilo koju vrijednost:

Var prihod = 300; neka cijena = 76;

Proces dodjele početne vrijednosti varijabli naziva se inicijalizacija.

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

Sjajna stvar kod varijabli je što možemo promijeniti njihovu vrijednost:

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

Konstante

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

Konstantna stopa = 10;

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

Konstantna stopa = 10; stopa = 23; // greška, stopa je konstanta, pa ne možemo promijeniti njenu vrijednost

Također je vrijedno napomenuti da budući da 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; // pogreška, stopa nije inicijalizirana

I ja sam imao problema s ovim. I nakon dosta vremena traženja odgovora i gledanja svih odgovora svih, mislim da sam došao do održivog rješenja za ovo.

Čini se da je većina odgovora na koje sam naišao korištenje funkcija za držanje konstanti. Kao što mnogi korisnici MNOGIH foruma pišu o tome, korisnici na strani klijenta mogu lako prepisati funkcije. Bio sam zaintrigiran Keith Evetts" odgovori da se objektu konstanti ne može pristupiti izvana, već samo iz funkcija iznutra.

Pa sam došao do ovog rješenja:

Unutar svega stavite anonimnu funkciju tako da varijable, objekti itd. ne može se mijenjati od strane klijenta. Također sakrijte "prave" funkcije tako da druge funkcije pozivaju "prave" funkcije iznutra. Također sam razmišljao o korištenju funkcija za provjeru je li korisnik promijenio funkciju na strani klijenta. Ako su funkcije promijenjene, vratite ih pomoću varijabli koje su "zaštićene" iznutra i ne mogu se mijenjati.

/*Testirano u: IE 9.0.8; Firefox 14.0.1; Krom 20.0.1180.60 m; Nije testirano u Safariju*/ (function())( /*Dvije funkcije _define i _access su iz licence Keitha Evettsa 2009.: LGPL (SETCONST i CONST). One su iste kao što ih je on napravio, jedino što sam promijenio su imena varijabli i tekst poruka o pogrešci. */ //literal objekta za držanje konstanti var j = (); /*Globalna funkcija _define(String h, mixed m). Nazvao sam je define da oponaša način na koji PHP " definira" konstante. Argument "h" je naziv const i mora biti niz, "m" je vrijednost const i mora postojati. Ako već postoji svojstvo s istim imenom u objektu holder , tada javljamo pogrešku. Ako ne, dodajemo svojstvo i postavljamo mu vrijednost. Ovo je "skrivena" funkcija i korisnik ne vidi ništa od vašeg kodiranja, pozovite ovu funkciju. Pozivate _makeDef() u vašem kodu i ta funkcija poziva ovu funkciju. - Možete promijeniti poruke o pogrešci u ono što želite da kažu. */ self._define = function(h,m) ( if (typeof h !== "string") ( throw new Error("Ne znam što da radim."); ) if (!m) ( throw new Error("Ne znam što da radim."); ) else if ((h in j)) ( throw new Error("Imamo problem!"); ) else ( j[h] = m; return true; ) ); /*Globalna funkcija _makeDef(String t, mixed y). Nazvao sam je makeDef jer ovom funkcijom "definiramo". Argument "t" je naziv konst i ne mora biti samo velikim slovima jer sam ga postavio na velika slova unutar funkcije, "y" je vrijednost vrijednosti konst i mora postojati. Pravim različite varijable kako bi korisniku bilo teže shvatiti što se događa. Zatim pozivamo funkciju _define s dvije nove varijable. Pozivate ovu funkciju u svom kodu da postavite konstantu. Poruku o pogrešci možete promijeniti u ono što želite. */ self._makeDef = function(t, y) ( if(!y) ( throw new Error("Ne znam što da radim."); return false; ) q = t.toUpperCase(); w = y; _define(q, w); ); /*Globalna funkcija _getDef(String s). Nazvao sam je getDef jer ovom funkcijom "dobivamo definiciju". Argument "s" je naziv const i ne Ne moraju biti velika slova jer sam unutar funkcije postavio velika slova. Napravio sam drugu varijablu kako bi korisniku bilo teže shvatiti što se događa. Funkcija vraća poziv funkcije _access. Prosljeđujem novu varijablu i izvorni niz uz funkciju _access. Činim to jer ako korisnik pokušava dobiti vrijednost nečega, ako postoji pogreška, argument se ne prikazuje velikim slovima u poruci o pogrešci. Pozivate ovu funkciju u svom kodu da dobijete konstantu. */ self._getDef = funkcija(e) ( z = s.toUpperCase(); return _access(z, s); ); /*Globalna funkcija _access(String g, String f). Nazvao sam ga pristup jer "pristupamo" konstanti preko ove funkcije. Argument "g" je naziv const i to samo velikim slovima, "f" je također naziv const, ali to je izvorni niz koji je proslijeđen funkciji _getDef(). Ako postoji pogreška, prikazuje se izvorni niz, "f". Zbog toga je korisniku teže shvatiti kako se konstante pohranjuju. Ako u nositelju objekta postoji svojstvo s istim imenom, vraćamo konstantnu vrijednost. Ako ne, provjeravamo postoji li varijabla "f", ako ne, postavljamo je na vrijednost "g" i javljamo pogrešku. Ovo je "skrivena" funkcija i korisnik ne vidi ništa od vašeg kodiranja poziva ovu funkciju. Pozovete funkciju _getDef() u svom kodu i ta funkcija poziva ovu funkciju. Možete promijeniti poruke o pogrešci u što god želite reći. */ self._access = function(g, f) ( if (typeof g !== "string") ( throw new Error("Ne znam što učiniti."); ) if (g in j) ( return j[g]; ) else ( if(!f) ( f = g; ) throw new Error("Ne znam što da radim. Nemam pojma što \""+f+" \" je."); ) ); /*Četiri varijable u nastavku su privatne i ne može im se pristupiti iz vanjske skripte osim za funkcije unutar ove anonimne funkcije. Ove varijable su nizovi četiri gore navedene funkcije i koristit će ih strašna funkcija eval() da ih vrati na njihov izvornik ako bilo koju od njih promijeni korisnik koji pokušava hakirati vaš kod. */ var _define_func_string = "function(h,m) ("+" if (typeof h !== "string") ( throw new Error("Ne znam što da radim."); )"+" if (!m) ( throw new Error("Ne znam što napraviti."); )"+" else if ((h u j)) ( throw new Error("Imamo problem!"); )"+" else ("+" j[h] = m;"+" return true;" +" )"+" )"; var _makeDef_func_string = "function(t, y) ("+" if(!y) ( throw new Error("Ne znam što učiniti."); return false ; )"+" q = t.toUpperCase();"+" w = y;"+" _define(q, w);"+" )"; var _getDef_func_string = "funkcija(e) ("+" z = s.toUpperCase();"+" return _access(z, s);"+" )"; var _access_func_string = "function(g, f) ("+" if (typeof g !== "string") ( throw new Error("Ne znam što da radim."); )"+" if (g u j) ( return j[g]; )"+" else ( if(!f) ( f = g;) throw new Error("Ne znam što da radim. Nemam pojma što \\""+f+"\\" je. "); )"+" )"; /*Globalna funkcija _doFunctionCheck(String u). Nazvao sam je doFunctionCheck jer mi "provjeravamo funkcije". Argument "u" je naziv bilo kojeg od četiri gore navedena naziva funkcija koje želite provjeriti. Ova funkcija će provjeriti nalazi li se određeni redak koda unutar određene funkcije. Ako jest, ne činimo ništa, ako ne, koristimo funkciju eval() da vratimo funkciju na izvorno kodiranje pomoću gornjih varijabli niza funkcija. Ova funkcija također će izbaciti pogrešku ovisno o postavljenoj varijabli doError to true Ovo je "skrivena" funkcija i korisnik ne vidi ništa od vašeg kodiranja poziva ovu funkciju. Pozovete funkciju doCodeCheck() i ta funkcija poziva ovu funkciju. - Poruke o pogreškama možete promijeniti u ono što želite. */ self._doFunctionCheck = function(u) ( var errMsg = "Imamo VELIKI problem! Promijenili ste moj kod."; var doError = true; d = u; switch(d.toLowerCase()) ( case "_getdef": if(_getDef.toString().indexOf("z = s.toUpperCase();") != -1) ( /*ne radi ništa*/ ) else ( eval("_getDef = "+_getDef_func_string); if(doError === true) ( ​​​​throw new Error(errMsg); ) ) break; case "_makedef": if(_makeDef.toString().indexOf("q = t.toUpperCase();") != -1 ) ( /*ne radi ništa*/ ) else ( eval("_makeDef = "+_makeDef_func_string); if(doError === true) ( ​​​​throw new Error(errMsg); ) ) break; case "_define": if(_define. toString().indexOf("else if((h in j)) (") != -1) ( /*ne radi ništa*/ ) else ( eval("_define = "+_define_func_string); if( doError === true) ( ​​​​throw new Error(errMsg); ) ) break; case "_access": if(_access.toString().indexOf("else ( if(!f) ( f = g; )" ) != -1) ( /*ne radi ništa*/ ) else ( eval("_access = "+_access_func_string); if(doError === true) ( ​​​​throw new Error(errMsg); ) ) break; default: if(doError === true) ( ​​throw new Error("Ne znam što da radim."); ) ) ); /*Globalna funkcija _doCodeCheck(String v). Nazvao sam ga doCodeCheck jer "radimo provjeru koda". Argument "v" je naziv jedne od prve četiri funkcije u ovoj skripti koju želite provjeriti. Napravio sam drugu varijablu kako bih otežao korisnik da shvati što se događa. Pozivate ovu funkciju u svom kodu da provjerite je li korisnik promijenio neku od funkcija. */ self._doCodeCheck = function(v) ( l = v; _doFunctionCheck(l); ) ; )())

Također se čini da je sigurnost doista problem i da ne postoji način da "sakrijete" svoje programiranje od strane klijenta. Za mene je dobra ideja komprimirati vaš kod tako da ga bilo tko, uključujući i vas, programera, zaista teško može pročitati i razumjeti. Postoji stranica koju možete posjetiti: http://javascriptcompressor.com/. (Ovo nije moja stranica, ne brinite, ne reklamiram.) Ovo je stranica koja će vam omogućiti besplatno komprimiranje i maskiranje Javascript koda.

  1. Kopirajte sav kod u gornjoj skripti i zalijepite ga u gornje tekstualno područje na stranici javascriptcompressor.com.
  2. Označite potvrdni okvir Base62 encode, označite potvrdni okvir Shrink Variables.
  3. Pritisnite tipku Compress.
  4. Sve to zalijepite i spremite u .js datoteku i dodajte na svoju stranicu u zaglavlju svoje stranice.

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, npr za izjave ili ako.

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 u ovom slučaju ovo je 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 se koristi 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 vodič vas upoznaje s deklariranjem funkcija, funkcijskih izraza i funkcija strelica, vraćanjem vrijednosti i dodjeljivanjem vrijednosti funkcija 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. Možete koristiti konstante u JavaScriptu za snimanje i umetanje složenijih vrijednosti, na primjer, teško pamtljive kodove, skupove znakova, dugačak tekst, web adrese, adrese 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.

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, najnovija verzija ECMAScripta (specifikacija koja je standard) uvela je pravu 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 dobru podršku u moderni preglednici: 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 ne stvaraju novi opseg u Webkitu. Oni. konstante mogu biti vidljive izvan trenutnog opsega.

Firefox 35 i starije verzije omogućuju promjenu vrijednosti const u hodu. Ovo je popravljeno Verzije Firefoxa 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