Ответ 1
В принципе, var
объявляет переменную, и вы также можете назначить ее одновременно.
Без var
, присваивая переменной. Назначение будет либо назначать существующей переменной, либо создавать глобальную переменную этого имени, а затем назначать ей.
Вне функций это означает, что нет реальной разницы (в принципе), если переменная еще не существует. Обе создают глобальную переменную foo
в этом случае.
Внутри функции существует огромная разница. Первая создает переменную локальную для функции независимо от того, существует она или нет в другом месте.
Вторая создаст глобальную переменную, если она не существует, или просто измените значение, если оно существует.
Чтобы код был как можно более модульным, вы всегда должны использовать var
, если вы специально не хотите изменять существующие глобальные переменные. Это означает объявление всех глобальных переменных вне функций с помощью var
и объявление всех локальных сетей с помощью var
.