В чем разница между:
function bla1(x){console.log(x)}
и
function bla(x){return console.log(x)}
В каких случаях следует использовать return
?
также, когда значение возвращается из функции, что с ним происходит? он где-то хранится?
В чем разница между:
function bla1(x){console.log(x)}
и
function bla(x){return console.log(x)}
В каких случаях следует использовать return
?
также, когда значение возвращается из функции, что с ним происходит? он где-то хранится?
В чем разница
Первая функция возвращает undefined
(поскольку она явно не выражает return
), вторая возвращает то, что возвращает console.log
.
В каких случаях я должен использовать return?
Когда функция генерирует некоторое значение, и вы хотите передать ее обратно вызывающему. Возьмите Math.pow
, например. Он принимает два аргумента, базу и экспонента и возвращает базу, поднятую до экспоненты.
Когда значение возвращается из функции, что с ним происходит? он где-то хранится?
Если вы хотите сохранить возвращаемое значение, вы должны назначить его переменной
var value = someFunction();
Здесь сохраняется возвращаемое значение someFunction
в value
. Если вы вызовете функцию без присвоения возвращаемого значения, тогда значение просто будет отключено:
someFunction();
Это основы программирования и не только релевантны JavaScript. Вы должны найти книгу, в которой представлены эти основы и, в частности, для JavaScript, я рекомендую прочитать Руководство по JavaScript MDN. Может быть, статья Википедии о Функции также полезна.
Возврат в функции - способ передачи данных из функции.
Пример:
function test(){
var test = 1+1;
return test;
}
var feedback = test(); //feedback would now contain the value 2 if outputted.
Мы также можем отправить переменную в функцию, а затем вернуть ее обратно.
Пример 2:
function test(i){
i= i+1;
return i;
}
var feedback = test(1); //feedback would also output the value 2.
Как вы уже упоминали, return дает вам возможность вызвать функцию и сохранить возвращаемое значение.
Вот небольшой пример:
function bla(x) { return "blablabla"; }
Если я вызову метод, я получу строку с blablabla:
var blastring = bla(x);
alert(blastring);
Это приведет к появлению предупреждения с blablabla.
С return
вы указываете, что такое значение function
. Вы можете использовать это значение для выполнения дальнейших операций или для хранения его в переменной и т.д.
Так как console.log
return
undefined
, примеры в вашем вопросе эквивалентны, так как function
, не достигнув оператора return, вернет undefined
. Но позвольте мне привести вам пример:
function sum(arr) {
var s = 0;
for (var index in arr) {
s += arr[index];
}
return s;
}
function prodsum(arr, scalar) {
return scalar * sum(arr);
}
console.log(prodsum([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 3));
Результат будет 165. Если мы удалим return
s, то оба function
будут return
undefined
:
function sum(arr) {
var s = 0;
for (var index in arr) {
s += arr[index];
}
s;
}
function prodsum(arr, scalar) {
scalar * sum(arr);
}
console.log(prodsum([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 3));
и результат будет undefined
. В принципе, если вы хотите, чтобы function
имел заключение или окончательное значение, тогда у вас есть return
.
Если вы просто добавили return;
в функцию. Он останавливает выполнение функции.