Ниже приведен код JavaScript. Я пытаюсь понять область функций в JavaScript и после статьи здесь. Я воспроизвожу код ниже -
var cow = "purple"; // just a random cow
var f = function (x) {
var r = 0;
cow = "glue";
if (x > 3) {
var cow = 1; // a local variable
r = 7;
}
return r;
};
var z = f(2);
alert(cow); // returns purple
Я не совсем понимаю, почему строка "фиолетовый" предупреждается. Строка cow = "glue";
должна установить значение переменной cow для "glue". Если я удаляю блок if, а затем предупреждаю корову в последнем утверждении, я вижу, что строка "клей" предупреждается.
Когда вызывается f (2), код кода if не вводится, и ничего в нем не выполняется, поэтому почему я вижу разные результаты? Поэтому почему предупреждение о возврате коров в последний оператор возвращает строку "фиолетовый"?