Funkcijas ir atkārtoti izmantojami koda bloki. JavaScript piedāvā vairākus veidus, kā tās definēt.

Funkcijas deklarācija

function sveiciens(vards) {
return `Sveiks, ${vards}!`;
}

console.log(sveiciens('Jāni')); // Sveiks, Jāni!

Funkcijas izteiksme

const sveiciens = function(vards) {
return `Sveiks, ${vards}!`;
};

Bultiņu funkcijas (arrow functions)

Modernais, saīsinātais pieraksts:

// Pilnā forma
const saskaitit = (a, b) => {
return a + b;
};

// Saīsinātā (ja tikai viens izteikums)
const saskaitit = (a, b) => a + b;

// Viens parametrs — iekavas nav obligātas
const dubultot = n => n * 2;

console.log(saskaitit(5, 3)); // 8
console.log(dubultot(4)); // 8

Noklusētās vērtības

function sveicinat(vards, uzruna = 'Sveiks') {
return `${uzruna}, ${vards}!`;
}

console.log(sveicinat('Jāni')); // Sveiks, Jāni!
console.log(sveicinat('Anna', 'Labdien')); // Labdien, Anna!

Rest parametri

Pieņem neierobežotu skaitu argumentu:

function summa(...skaitli) {
return skaitli.reduce((a, b) => a + b, 0);
}

console.log(summa(1, 2, 3, 4)); // 10

Destrukturizācija parametros

function parādītLietotāju({ vards, vecums }) {
console.log(`${vards}, ${vecums} gadi`);
}

const lietotajs = { vards: 'Anna', vecums: 25, pilseta: 'Rīga' };
parādītLietotāju(lietotajs); // Anna, 25 gadi

Mainīgo redzamība (scope)

const globālais = 'es esmu globāls';

function tests() {
const lokālais = 'es esmu lokāls';
console.log(globālais); // pieejams
console.log(lokālais); // pieejams
}

tests();
// console.log(lokālais); // Kļūda! Nav pieejams

let un const mainīgie ir bloka līmeņa — tie pastāv tikai sava bloka { } ietvaros.