A declaration yra pavadinta funkcijos išraiška; an expression priskiria funkciją kintamajam. Praktinis skirtumas yra hoisting.
();
() { ; }
();
expressed = () { ; };
A declaration yra pavadinta funkcijos išraiška; an expression priskiria funkciją kintamajam. Praktinis skirtumas yra hoisting.
();
() { ; }
();
expressed = () { ; };
IT pokalbių klausimų biblioteka su išsamiais atsakymais — nuo Junior iki Senior.
PaaukotiFunkcijosiadeklaracijos yra pakeltos su jų kūnu, todėl visa funkcija egzistuoja prieš vykdymui ją pasiekiant. A function expression yra tik reikšmė, priskirta kintamajam — ankstyvojo iškvietimo vietoje, expressed vis dar yra undefined (var atveju) arba TDZ (let/const atveju).
// expression — for callbacks, conditional definitions, arrow functions
const handler = () => doThing();
const fn = condition ? a : b;
arr.map(x => x * 2);
// declaration — clear, hoisted top-level functions
function calculateTotal(items) { ... }
Declarations skaitosi gerai aukšto lygio pavadintoms funkcijoms ir naudojasi hoisting privalumais (galite jas apibrėžti po jų naudojimo). Expressions yra būtinas arrow funkcijoms, callback'ams, IIFE'ams ir sąlyginiam funkcijų priskyrimo. Arrow funkcijos visada yra išraiškos.