Я новичок в JS, поэтому, пожалуйста, простите меня, если это звучит глупо. Я играл с концепциями объявления функции и выражения функции.
У меня есть следующий код:
var printSomething = function printSomeString(string) {
console.log(string);
}
console.log(typeof printSomething); // function
console.log(typeof printSomeString); // undefined
Если я буду следовать определению hoisting
в JavaScript, к тому времени, когда я использую printSomething
и printSomeString
, они должны быть доступны, так как их объявления были подняты.
typeof printSomething
возвращает функцию, но typeof printSomeString
возвращает значение undefined. Почему так?
Разве это именованное функциональное выражение уже не объявлено и не поднято перед использованием?
Разве само выражение именованной функции не является функцией?
Кроме того, когда я вызываю printSomeString('Some STRING')
, он возвращает следующее
Uncaught ReferenceError: printSomeString не определен
Что здесь происходит?
printSomeString
существует только в своей области, если можно: jsfiddle.net/vqL2814y - person Kaiido   schedule 22.05.2019