Dunaevlad
@Dunaevlad

Почему функция console.log зависит от функции return?

//declare variable;
var balance = 10500; // глобальная переменная!
var amount = steal(balance, 1250); //глобальная переменная!
//function;
function steal(balance, amount) {
    if (amount < balance) {
        balance = balance - amount;
    }
    return balance; 
}

console.log(amount); // результат = 9250, однако, если мы заменим return balance на return amount, результат будет 1250, он выдает значение параметра, не глобальной переменной amount
console.log(balance); // результат = 10500;


Объясните пожалуйста, почему в этом коде, значение функции console.log зависит от return. Оговорюсь, код не мой, из учебника, как проще сделать, я знаю. Меня интересует, почему тут это так работает!
  • Вопрос задан
  • 212 просмотров
Решения вопроса 1
Dunaevlad
@Dunaevlad Автор вопроса
Мне тут еще подсказали по моему вопросу и :
//declare variable;
    var balance = 10500;
    var cameraOn = true;
    var amount = steal(balance, 1250);
    //function;
    function steal(balance, amount) {
        cameraOn = false;
        if (amount < balance) {
            balance = balance - amount;
        }
        return balance; // 
    }

    console.log(amount);

Возвращаемое значение функции присваивается переменной amount!!!!!!!!Вот теперь я понял почему при смене return balance на return amount будут разные значения!!!!
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
profesor08
@profesor08 Куратор тега JavaScript
Учи области видимости в языке. Если книжка не может объяснить, то прочитай тут: https://habr.com/ru/company/ruvds/blog/337038/
или тут: https://learn.javascript.ru/functions-closures
или тут: https://getinstance.info/articles/javascript/varia...

В твоем случае balance, amount в функции это локальные переменные, они не имею отношения к глобальным, имя не имеет значение, и то что оно одинаковое путает тебя.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы