Конечно, если очень хочется, то можно. Но не нужно. Например, вот такой код будет прекрасно работать:
function myFunc()
{
x = 100;
document.write(x);
}
Но до тех пор, пока в вашем коде не появится глобальная переменная х. В этом случае в нашей функции будет изменяться значение именно глобальной переменной. А вы уверены, что хотели именно этого? Ведь в функциях обычно используются локальные переменные. То есть такой код:
var x = 50;
function myFunc()
{
x = 100;
}
myFunc();
document.write(x); //x = 100
изменяет значение глобальной переменной, и после вызова функции myFunc() значение х будет равно 100. Если вы этого и хотели, то вопросов нет. Но обычно это не так, и поэтому такое программирование часто приводит к труднонаходимым семантическим ошибкам.
Локальные переменные имеют преимущество перед глобальными. То есть если есть глобальная переменная х, и есть локальная переменная х, то в функции будет использована именно локальная переменная. Конечно при условии, что она локальная. А это-то условие в нашем примере как раз и не выполняется. Потому что локальной переменная будет однозначно определена только в том случае, если она объявлена с инструкцией var. Вот так:
var x = 50; //Глобальная
function myFunc()
{
var x = 100; //Локальная
document.write(x); //x = 100
}
myFunc();
document.write(x); //x = 50
Поэтому в функциях лучше всегда использовать var при объявлении переменных. Если же вам надо изменить глобальную переменную через функцию, то лучше передать переменную через параметр и вернуть изменённое значение.
Больше сведений об области видимости можно найти здесь.
На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.