Вопрос из разряда "пишем качественный код". Следует ли выносить объявление глобальных переменных наверх, если гарантированно знаешь, что они будут применяться только в одном участке кода?
Дополнение. Наверное, не совсем правильно выразил свою мысль. Переменные глобальные не на уровне документа, они имеют область видимости в пределах кода, то есть лежат, так сказать, в корневой функции.
Ответ для глобальных и локальных - да. Переменные, которые используются внутри функции, желательно описывать вначале функции. Как и пропсы для классов (пока только в последних стандартах).
Это делается для того, чтобы сразу понимать, какие переменные используются в функции. Временные переменные можно не выносить.
Если прямо в одном участке кода, то и объявлять их лучше в нем, если хотя бы есть потенциал что будут использоваться где-то еще, то можно и наверх.
С опытом рука сама набьется и будете ставить там где надо.
Если вы пишите на версии ECMA 6 и выше, то тогда объявляйте переменные там, где они упоминаются впервые, используя ключевые слова const, let.
Практика выносить объявление переменных в начало области видимости появилась в мире js из-за особенностей работы объявления переменных через var.