Область видимость переменных

Переменные могут быть глобальными и локальными. Глобальные переменные доступны в любом месте кода, а локальные только внутри функций.

var lang = 'JavaScript';
function getLang() {
    var lang = 'jQery';
    return lang;
}

getLang(); // jQuery
lang; // JavaScript

В коде выше видно, что внутри функции снова создаётся переменная lang, значение которой возвращает функция. При этом, это переменная не заменяет уже существующую переменную, что видно на последней строчке кода.

Переменная lang внутри функции является локальной переменной, и она доступна только внутри функции, и не затрагивает уже существующие переменные.

Если убрать присвоение переменной внутри функции, то будет заменена существующая переменная.

var lang = 'JavaScript';
function getLang() {
    lang = 'jQery';
    return lang;
}

getLang(); // jQuery
lang; // jQuery