Когда я прочитал спецификацию для обучения "поднятию", там FunctionDeclaration происходит на шаге 5, но VariableDeclaration происходит на шаге 8 em> и я думаю, что это означает, что объявление функции имеет более высокий приоритет, чем объявление переменной.
Как вы думаете, почему декларация функций объявляется первой и есть ли для этого какая-то причина?
Примечание. Эту часть можно прочитать по этой ссылке http://www.ecma-international.org/ecma-262/5.1/#sec-10.5
У меня есть гипотеза для моего вопроса. Это не ответ, это гипотеза, потому что я действительно не знаю ответа на этот вопрос, по-видимому, люди тоже не знают ответа.
Моя гипотеза,
эта функция может переопределить другую функцию, но переменная не может, я думаю, потому что происходит первое объявление функции.