Где конкретно произошла подмена параметра функции?
ПЕРВЫЙ ВАРИАНТ МОЙ (ОН РАБОЧИЙ):
function f(x) {
if (x < 0) {
return 0
} else {
if (x < 2) {
return x * x;
} else {
if (x < 5) {
return 6 - x;
} else {
return 1;
}
}
}
}
x = 9 * Math.random() - 2;
document.write('Случайный аргумент: ' + x + '<br>');
document.write('Значение функции: ' + f(x) + '')
ВТОРОЙ ВАРИАНТ С УЧЕБНИКА. МНЕ ЛИЧНО НЕ ПОНЯТЕН: Здесь оглашается переменная z, которая в итоге, выводится вместо аргумента x в функции. Где конкретно z = x?
function f(x) {
if (x < 0) {
return 0
} else {
if (x < 2) {
return x * x;
} else {
if (x < 5) {
return 6 - x;
} else {
return 1;
}
}
}
}
let z;
z = 9 * Math.random() - 2;
document.write('Случайный аргумент: ' + z + '<br>');
document.write('Значение функции: ' + f(z) + '')
Ответы (1 шт):
Автор решения: OPTIMUS PRIME
→ Ссылка
Где конкретно z = x?
Нигде. Когда объявляется функция
function f(x) {
console.log(x);
}
У неё x — название внутренней переменной, котороя всегда будет принимать то значение, которое отправят в неё во время вызова. Её можно назвать как угодно, даже одноименно со внешней переменной. Она всё равно будет другой:
let x = "Mooo...";
let bubu = 15;
f(x); // внутренний bubu получает значение `x` → "Mooo..."
f(bubu); // ...получает значение внешнего `bubu` → 15
f(100500); // ...получает значение 100500
function f(bubu) {
console.log(bubu);
bubu = null;
}
console.log("После вызова функции: " + bubu); // 15, внешний bubu не изменился.
// значение null получила только внутренняя переменная функции;