Dorian_bs,
Грубо говоря, это такая же функция, с тем отличием, что использовать её можно только после обьявления. "Обычную" функцию можно использовать до определения в блоке.
Например:
getRandomInt1() //5
function getRandomInt1() {return 5;}
// но
getRandomInt2() //ReferenceError: getRandomInt2 is not defined
var getRandomInt2 = function() {return 5;}
getRandomInt2() //5
// и
function randomIntFunctionInitialize() {
function getRandomInt3(){return 5;}
}
getRandomInt3() //ReferenceError: getRandomInt3 is not defined
randomIntFunctionInitialize()
getRandomInt3() //5