JavaScript

Аргументы функции. JavaScript

Я никак не могу понять, зачем они нужны.
let a = 4;
let b = 5;
function f() {a+b};
Типо объявил вначале и всё? Зачем их передавать? Или дело в области видимости?
в данном примере - нет особого смысла, разве что показать область видимости
Александр Сазонов
Александр Сазонов
84 899
Лучший ответ
Вот например имеем массив чисел. Нужно узнать сумму цифр каждого числа этого массива. Для этого пишем функцию и в цикле применяем ее для каждого числа массива. Как это по вашему сделать не передавая в функцию никаких аргументов?
function sum(a) {
s = 0;
do {s += a % 10;
a = parseInt(a / 10);
}
while (a > 0);
return s
}
let arr = [324,98,56,123,5678];
for (var i = 0; i < arr.length; i++) {
console.log(sum(arr[i]))
};
ну например надо тебе в проекте площадь круга счтать часто, проект у тебя такой круги рисует и тебя достало каждый раз писать формулу целиком, тогда ты можешь запхать формулу в функцию и вызывать ее предавая все необходимые параметры т е радиус так как площадь вобщем то ни от чего больше не зависит. это учебный пример а в реальных проектах формулы сложнее и функции создают функции которые вызываются внутри функций еще и применительно к разным обектам.
Almaz Nazirov
Almaz Nazirov
59 848
А что если нужно сложить не только а и б, а любые два числа?
Константин Не совсем понял.
function f() { var1+var2}
Если же
function f(tmp,tmp2) { tmp+tmp2} - Это же не имеет логики?! Они объявляются в функции и не имеют значений. А всё что имеет значения - объявлено раньше
Соловей Разбойник let a = 1,
b = 2,
c =3,
d = 4,
e =5,
f = 6
function sum(num1, num2) {
return num1+num2

sum(a, b)
sum(b, c)
sum(d, e)
sum(f, a)
sum(b, f)
Отпишитесь, когда озарение придет для чего это нужно. Я уже и забыл, что вначале пути даже такие очевидные вещи могут быть непонятны.
у тебя функция неполноценная работает лишь с твоими проходными залетными
переменными

пример полноценной функции
function plus_umn( a1, a2 ){
let otv = a1 + a2; // работаем с данными
/* что обрабатываем по требованию */
return otv * 2;
}
Akjol Janyshov
Akjol Janyshov
16 208
Вообще основной смысл аргументов в том, чтобы функцию можно было переиспользовать для множества разных переменных: например у Вас есть a,b,c,d. При этом в функции у Вас a+b, и поэтому в случае необходимости сложить c+d, придётся писать вторую такую же функцию, но уже с c + d внутри. А если же Вы зададите функции аргументы, например (first, second), то уже внутри неё Вы будете делать сложение переданных в функцию чисел\строк, то есть first + second. В таком случае, при всего-лишь одной функции, можно будет складывать любые две переменных, а не только фиксированные внутри неё a + b.

В этом мануале, ближе к середине, есть пример (тут аргументы называют параметрами): https://learn.javascript.ru/function-basics