Funktionien ilmoitusten ero
Molemmat funktion määrittelytavat ovat vastaavia, mutta on olemassa merkittävä ero: funktiot, jotka on määritelty Function Declaration -menetelmällä, ovat saatavilla, vaikka niihin viitataan ennen kuin ne on määritelty.
Katso esimerkki:
// Viitataan funktioon ennen sen määrittelyä:
func(); //tulostaa '!'
function func() {
console.log('!');
}
Funktionaaliset lausekkeet luodaan koodin suoritushetkellä eivätkä ole saatavilla ylempänä. Siksi tällainen koodi antaa virheen:
func(); //virhe, tällaista funktiota ei ole vielä olemassa!
let func = function() {
console.log('!');
};
Luo funktio Function Declaration -menetelmällä. Tarkista, että se on saatavilla ylempänä kuin sen määrittelypaikka.
Luo funktio Function Expression -menetelmällä. Tarkista, että se ei ole saatavilla ylempänä kuin sen määrittelypaikka.