Definování funkcí v JavaScriptu. Konstruktéři a nové

Funkce je blok kódu, který provádí akci nebo vrací hodnotu. Funkce jsou vlastní kód, který lze znovu použít; Proto se díky funkcím programy stávají modulárními a produktivnějšími.

Tento výukový program nabízí několik způsobů, jak definovat a volat funkci a používat parametry funkcí v JavaScriptu.

Definice funkce

Funkce jsou definovány nebo deklarovány pomocí klíčového slova function. Syntaxe funkce v JavaScriptu vypadá takto:

název funkceOfFunction() (
// Kód, který se má provést
}

Deklarace funkce začíná klíčovým slovem function následovaným názvem funkce. Názvy funkcí se řídí stejnými pravidly jako názvy proměnných: mohou obsahovat písmena, čísla, podtržítka a znaky dolaru a často jsou psány velkými písmeny. Za názvem následuje sada závorek, které lze použít pro volitelné parametry. Kód funkce je obsažen ve složených závorkách, jako je příkaz for nebo if.

Jak jste si mohli všimnout, hodnota parametru name není v kódu přiřazena, to se děje při volání funkce. Při volání funkce je uživatelské jméno předáno jako argument. Argument je skutečná hodnota, která je předána funkci (v tomto případě uživatelské jméno, například 8host).

// Vyvolá funkci pozdravu s argumentem "8host".
pozdrav("8hostitel");

Hodnota 8host je předána funkci přes parametr name. Nyní bude parametr name reprezentovat tuto hodnotu v této funkci. Kód pro soubor greetUser.js vypadá takto:

// Inicializace vlastní funkce pozdravu
funkce pozdrav(jméno) (
console.log(`Dobrý den, $(jméno)!`);
}
// Vyvolá funkci pozdravu s argumentem "8host".
pozdrav("8hostitel");

Když spustíte tento program, získáte následující výstup:

Nyní víte, jak funkci znovu použít.

Kromě parametrů lze uvnitř funkcí deklarovat proměnné. Tyto proměnné se nazývají lokální a existují pouze v rámci svého funkčního bloku. Rozsah proměnné určuje dostupnost proměnných; Proměnné, které jsou definovány uvnitř funkce, nejsou přístupné zvenčí funkce, ale lze je použít tolikrát, kolikrát je v programu použita funkce, ke které patří.

Vrácení hodnot

Ve funkci můžete použít více než jeden parametr. Do funkce můžete předat více hodnot a vrátit hodnotu. Vytvořte například soubor sum.js a deklarujte v něm funkci, která najde součet dvou hodnot x a y.

// Inicializace funkce přidání
funkce add(x, y) (
návrat x + y;
}

add(9, 7);

Tento kód definuje funkci s parametry x a y. Funkce pak získá hodnoty 9 a 7. Spusťte program:

Program sečte výsledné hodnoty 9 a 7 a vrátí výsledek 16.

Kdy použít klíčové slovo return, funkce se zastaví a vrátí hodnotu výrazu. V tomto případě prohlížeč zobrazí hodnotu v konzole, ale to není totéž jako použití console.log() pro výstup do konzoly. Když je funkce volána, vydá hodnotu tam, odkud byla volána. Tuto hodnotu lze použít nebo umístit do proměnné.

Funkční výrazy

V předchozí části jste deklarovali funkci, která sečte dvě čísla a vrátí výslednou hodnotu. Výraz funkce můžete také vytvořit přiřazením funkce k proměnné.

Pomocí předchozí funkce aplikujte výslednou hodnotu na proměnnou součtu.

// Přiřadí funkci add součtové konstantě
const sum = funkce add(x, y) (
návrat x + y;
}
// Vyvolání funkce pro nalezení součtu
suma(20, 5);
25

Nyní je konstantní součet funkcí. Tento výraz lze zkrátit přeměnou na anonymní funkci (takto se nazývají funkce bez parametru name). V současné době se funkce nazývá add, ale ve výrazech funkce se název obvykle vynechává.

// Přiřadí funkci součtové konstantě
const sum = funkce (x, y) (
návrat x + y;
}
// Vyvolání funkce pro nalezení součtu
suma(100, 3);
103

Nyní funkce již nemá jméno, stala se anonymní.

Pro ladění lze použít výrazy pojmenovaných funkcí.

Funkce šipek

Doposud byly funkce definovány pomocí klíčového slova function. Existuje však novější a výstižnější způsob definice funkce – funkce šipky ECMAScript 6. Šipkové funkce jsou reprezentovány rovnítkem následovaným znaménkem větší než: =>.

Funkce šipek jsou vždy anonymní a jsou typem výrazu funkce. Zkuste vytvořit základní funkci šipky, abyste našli součet dvou čísel.

// Definice funkce násobení
const multiply = (x, y) => (
návrat x * y;
}

multiply(30, 4);
120

Místo funkce zápisu můžete jednoduše použít => symboly.

Pokud má funkce pouze jeden parametr, lze závorky vynechat. V následujícím příkladu funkce odmocňuje x, takže jako argument potřebuje pouze jedno číslo.

// Definice čtvercové funkce
konstantní čtverec = x => (
návrat x * x;
}
// Vyvolání funkce pro nalezení produktu
čtverec(8);
64

Poznámka: Pokud funkce šipky nemá žádné parametry, musíte přidat prázdné závorky ().

Funkce šipek, které se skládají pouze z příkazu return, lze zkrátit. Pokud se funkce skládá pouze z jednoho návratového řádku, můžete vynechat složené závorky a příkaz return, jako v příkladu níže.

// Definice čtvercové funkce
const square = x => x * x;
// Vyvolání funkce pro nalezení produktu
čtverec(10);
100

Závěr

Tento tutoriál vás seznámí s deklarováním funkcí, funkčních výrazů a funkce šipky, vracet hodnoty a přiřazovat funkční hodnoty proměnným.

Funkce je blok kódu, který vrací hodnotu nebo provádí akci.

Štítky:

Proměnné a konstanty v JavaScriptu. Deklarace proměnných a přiřazení hodnot k nim. Globální a lokální proměnné. Pomocí konstant

Deklarace proměnných v JavaScriptu

Názvy proměnných v JavaScriptu se mohou skládat z písmen, číslic, znaku $ a znaku _ a název proměnné nemůže začínat číslem. Pamatujte, že JavaScript rozlišuje velká a malá písmena a proměnné a1 a A1 jsou různé proměnné. Nedoporučuje se používat azbuku, i když je to možné.
Proměnné v JavaScriptu jsou deklarovány pomocí klíčového slova var:

Var Peremennaya_1 var Peremennaya_2

Nedoporučuje se používat proměnné v JavaScriptu bez deklarace. To je možné, ale může to vést k chybám.

Přiřazení hodnot proměnným

Přiřazení hodnoty deklarovaným proměnným v JavaScriptu:

Peremennaya_1 = 25 Peremennaya_2 = "Přiřazený text je uzavřen v rovných uvozovkách"

Hodnotu proměnných můžete přiřadit ihned po deklaraci:

Var Peremennaya_1 = 25 var Peremennaya_2 = "Přiřazený text je uzavřen v rovných uvozovkách"

Hodnota proměnné v JavaScriptu se může během provádění programu změnit. Při psaní textu do proměnné musí být uzavřena do rovných uvozovek.

Lokální a globální proměnné

Pokud je proměnná deklarována uvnitř funkce, pak je místní a bude dostupný (viditelný) pouze v rámci této funkce. Když funkce skončí, lokální proměnné v JavaScriptu jsou zničeny, takže můžete použít proměnné se stejným názvem v různých funkcích.

Pokud je proměnná deklarována mimo funkce, pak je globální a bude k dispozici (viditelný) ve všech funkcích na stránce. Globální proměnné jsou v JavaScriptu zničeny při zavření stránky.

Konstanty v JavaScriptu

Konstanty jsou navrženy tak, aby usnadnily práci s vaším kódem, když musíte použít duplicitní hodnoty nebo výrazy. Hodnotu konstanty stačí nastavit jednou a můžete ji používat, jak chcete, vložením do kódu vašich programů. JavaScript nemá klíčové slovo pro deklaraci konstant, místo konstant se používají běžné proměnné. Pro odlišení konstant od proměnných se obvykle označují velkými písmeny, v případě potřeby pomocí podtržítka:

Var DRUG_CHELOVEKA = "Pes"

Uvedený příklad konstanty není zcela úplný, protože slovo „Pes“ je již snadno zapamatovatelné a lze jej vložit tam, kde je potřeba. Pomocí konstant v JavaScriptu můžete zaznamenávat a vkládat složitější hodnoty, například obtížně zapamatovatelné kódy, znakové sady, dlouhý text, webové adresy, adresy E-mailem, telefonní čísla, různé koeficienty.

V JavaScriptu lze konstanty přepsat jako proměnné, ale pokud to uděláte, význam konstant se ztratí.

V tomto článku se dozvíte, jak to určit konstanty v JavaScriptu pomocí klíčového slova const.

ES6 poskytuje nový způsob, jak deklarovat konstanty pomocí klíčového slova konst. Klíčové slovo konst vytvoří odkaz na hodnotu pouze pro čtení.

Const VARIABLE_NAME = hodnota;

Podle dohody, Konstantní identifikátory JavaScriptu jsou velká písmena.

Klíčové slovo konst vypadá jako klíč slovo nechat v tom, že vytváří proměnné s rozsahem bloků, ale hodnoty deklarované pomocí const, nelze změnit.

Proměnné deklarované pomocí klíčového slova nechat jsou měnitelný. To znamená, že jejich hodnoty můžete kdykoli změnit, jak ukazuje následující příklad.

Nechť v = 10;
v = 20;
v = v + 5;
console.log(v); // 35

Proměnné však vytvořené pomocí klíčového slova konst, jsou neměnné. Jinými slovy, nemůžete je znovu přiřadit k jiným hodnotám. Pokus o opětovné přiřazení konstantní proměnné bude mít za následek chybu typu TypeError .

Const TAX = 0,1;
DAŇ = 0,2 ; //TypeError

Navíc proměnná, která je deklarována pomocí klíčového slova konst, musí být okamžitě inicializována hodnotou. Následující příklad volá Chyba syntaxe(syntaktická chyba) kvůli absenci inicializátoru v deklaraci konstantní proměnné.

Const RED; // Chyba syntaxe

Jak již bylo zmíněno dříve, jako proměnné deklarované pomocí klíčového slova nechat, proměnné deklarované pomocí klíčového slova konst, mají blokový rozsah.

To je vše a v příštím článku si povíme něco o používání klíčového slova konst s objektovými literály v JavaScript.

Když program potřebuje uložit hodnotu, aby ji mohl později použít, je tato hodnota přiřazena proměnné. Proměnná je jednoduše symbolický název pro hodnotu, který poskytuje možnost získat hodnotu podle názvu, to znamená, že když program specifikuje název proměnné, hodnota je nahrazena.

Proměnná získala svůj název díky tomu, že její hodnotu lze měnit během provádění programu.

Konstanty

Konstanta je jednoduše symbolický název pro hodnotu. Konstanta umožňuje odkazovat na hodnotu jménem, ​​což znamená, že když program specifikuje název konstanty, hodnota je místo toho nahrazena. Konstanty slouží k ukládání dat, která by se během provádění programu neměla měnit.

Před použitím konstanty je nutné ji deklarovat. Konstanty jsou deklarovány pomocí klíčového slova const následovaného názvem konstanty. Aby bylo možné odlišit konstanty od proměnných v kódu programu, bylo dohodnuto, že názvy konstant budou psány velkými písmeny:

Const MAX = 10;

Jakmile byla konstanta vytvořena, pokus o její předefinování na proměnnou nebo pokus o přiřazení hodnoty existující konstantě způsobí chybu.

Proč jsou potřebné proměnné a konstanty?

Pomáhají vám proměnné a konstanty programový kód jasnější. Podívejme se na malý příklad:

Celková cena = 2,42 + 4,33; // Celková cena

Čísla zde mohou znamenat cokoliv. Aby bylo jasné, co přesně se zde shrnuje, lze do proměnné (nebo konstantní) candyPrice (cena cukroví) přiřadit hodnotu 2,42 a do proměnné (neboli konstantní) oilPrice (cena oleje) hodnotu 4,33:

Celková cena = cena bonbónů + cena oleje;

Nyní, místo abyste si pamatovali, co tyto hodnoty znamenají, můžete vidět, že skript připočítává cenu cukroví k ceně másla.

Proměnné a konstanty také pomáhají šetřit čas při ladění skriptu. Místo toho, abyste všude používali stejný literál, můžete jej přiřadit proměnné (nebo konstantě) na začátku skriptu a poté použít proměnnou (nebo konstantu) místo literálu v celém zbytku kódu skriptu. Pokud se později rozhodne o změně hodnoty, pak změny v kódu nebudou muset být provedeny na několika místech, ale pouze na jednom místě - tam, kde byla hodnota přiřazena proměnné (nebo konstantě).

Rozsah konstant

Pro konstanty platí stejná pravidla jako pro proměnné deklarované pomocí klíčového slova let:

Const MAX = 5; // Globální konstanta ( const MAX = 10; // Bloková konstanta console.log(MAX); // 10 ) console.log(MAX); // 5 foo(); // 15 console.log(MAX); // 5 funkcí foo() ( const MAX = 15; // Místní konstanta console.log(MAX); )

Konstanty a referenční typy

Když je konstantě přiřazena hodnota referenčního typu, odkaz na hodnotu se stane neměnným a samotná hodnota zůstane měnitelná:

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

Od autora: Možná to bude překvapivé, ale JavaScriptu dlouho chybí podpora konstant, tzn. registrované hodnoty, které se během provádění celého skriptu nemění. Při absenci jakýchkoliv alternativ byla většina konstant deklarována pomocí proměnných.

Příklad deklarace konstanty pomocí proměnné:

var DAYSINWEEK = 7;

var DAYSINWEEK = 7;

To je nebezpečné a nepraktické, protože vám to umožňuje kdykoli změnit hodnotu proměnné DAYSINWEEK ve vašem skriptu. Vývojáři přišli s různými způsoby, jak odlišit proměnné, které jsou zdánlivě konstanty, od běžných proměnných v JavaScriptu, od pojmenování proměnných POUZE VELKÝMI PÍSMENY (nejlepší praxe) až po řešení, o kterých budu mluvit později. Naštěstí v Nejnovější verze ECMAScript (specifikace, která je standardem) zavedl tuto konstantu:

JavaScript. Rychlý start

const DAYSINWEEK = 7;

const DAYSINWEEK = 7;

A nyní je DAYSINWEEK přístupný jako proměnná, ale nikdy nebudete moci změnit její hodnotu:

console.log(DAYSINWEEK); > 7 DAYSINWEEK = 8; > chyba

řídicí panel. log(DAYSINWEEK);

DAYSINWEEK = 8 ;

> chyba

Jakmile byla konstanta deklarována (konstanty musí být inicializovány klíčovým slovem const, za kterým následuje název konstanty, který se řídí pravidly pro pojmenování proměnných), její název bude rezervován: již nemůžete pojmenovat proměnnou DAYSINWEEK a mít konstantu se stejným názvem , nebo naopak.

Klíčové slovo const has dobrá podpora v moderních prohlížečích: IE11 a Spartan, Firefox 31+, Opera 12+, Safari 5.1.7+, iOS 7 a vyšší, spolu s Chrome 36+. Existuje však několik důležitých upozornění:

Chrome nepodporuje zobrazení chyby při pokusu o přepsání konstanty. Hodnota konstanty se v žádném případě nezmění, ale nezkušený vývojář si může myslet, že nová hodnota byla použita, protože se nevyskytla žádná chyba.

JavaScript. Rychlý start

Naučte se základy JavaScriptu s praktickým příkladem, jak vytvořit webovou aplikaci.

Konstanty se nevytvářejí nová oblast viditelnost ve Webkitu. Tito. konstanty mohou být viditelné mimo aktuální rozsah.

Firefox 35 a nižší vám umožňuje měnit hodnotu const za chodu. To bylo opraveno ve Firefoxu 36+.

Je třeba také poznamenat, že problémy s Webkit nastávají pouze v případě, že není použit přísný režim (o čemž bude řeč v příštím článku).

Je nyní možné použít klíčové slovo const v reálných projektech?

Volba, zda ve svém kódu použít klíčové slovo const či nikoli, bude záviset na několika faktorech: nejdůležitější je, jaké verze prohlížečů návštěvníci vašeho webu používají, protože použití klíčového slova const bude v prohlížečích, jako je IE10, považováno za chybu. . Pokud chcete klíčové slovo const použít ve vývoji, ale nejste připraveni jej použít ve skutečných projektech, máte několik možností:

Možnost 1: použijte transpiler („transpiler“)

Transpilers, jak název napovídá, transformují váš kód v době kompilace do jiného jazyka: v tomto případě z verze specifikace ES6 (která zavedla klíčové slovo const) do ES5. To vám umožní psát kód více nová verze jazyk, ale skutečný projekt bude používat verzi, která je kompatibilní s širším spektrem prohlížečů. Eddie Osmani složil