Оператор return в JavaScript
Пример функции:
<button type="button" id="raz">нажать</button> <script> document.getElementById('raz').onclick = function() { function MyFun(a) { alert(a + a); } MyFun(5); } </script>
Оператор return
возвращает результат функции, с которым в дальнейшем можно работать:
<button type="button" id="raz">нажать</button> <script> document.getElementById('raz').onclick = function() { function MyFun(a) { return a + a; } alert(MyFun(5)); } </script>
Без него возвращается "undefined
":
<button type="button" id="raz">нажать</button> <script> document.getElementById('raz').onclick = function() { function MyFun(a) { a + a; } alert(MyFun(5)); } </script>
Результат выполнения функции можно присвоить переменной:
<button type="button" id="raz">нажать</button> <script> document.getElementById('raz').onclick = function() { function MyFun(a) { return a + a; } var a = MyFun(5); alert(a); } </script>
При достижении оператора return
функция возвращает значение и прекращает своё выполнение, в т.ч. в начале/середине цикла:
<button type="button" id="raz">нажать</button> <script> document.getElementById('raz').onclick = function() { function MyFun(a) { return a + a; alert("А меня-то забыли!"); } var a = MyFun(5); alert(a); } </script>
В функции может быть несколько return
, но возвращается одно значение:
<button type="button" id="raz">нажать</button> <script> document.getElementById('raz').onclick = function() { function MyFun(a, b) { if(a > b) { return a; } else { return b; } } alert(MyFun(2,4)); } </script>
Прервать работу скрипта или в чём разница между return; return false; return true;
Если не нужно знать достигла ли функция положительного исхода, то достаточно указать return
без значения:
<input type="number" id="raz" placeholder="Ввести цифру «5»"/>
<script>
document.getElementById('raz').onchange = function() {
function MyFun(a) {
if (a == 5) {
alert(a + ' - это цифра "5"');
return;
}
alert(a + ' - это не цифра "5"');
}
if (this.value != '') alert("Достигла ли return функция MyFun(): " + MyFun(this.value)); // всегда "undefined
"
}
</script>
Если дальнейшее выполнение скрипта должно прерываться (или развиваться по другому пути) при достижении положительного исхода рассматриваемой функции, то return
присваивается значение, чаще false
или true
:
<input type="number" id="raz" placeholder="Ввести цифру «5»"/> <script> document.getElementById('raz').onchange = function() { function MyFun(a) { if (a == 5) { alert(a + ' - это цифра "5"'); return true; } alert(a + ' - это не цифра "5"'); } if (this.value != '') { var a = MyFun(this.value); if (a == true) { alert("Функция MyFun() достигла return"); return; } alert("Функция MyFun() не достигла return"); } } </script>
Как использовать return, когда функция вызывает саму себя (рекурсия)
<button type="button" id="raz">нажать</button> <script> document.getElementById('raz').onclick = function() { function MyFun(a) { a = a + a; // первый этап a+a=5+5=10, второй этап a+a=10+10=20, третий этап a+a=20+20=40 if (a > 20) { return a; // базис рекурсии, передать значение 40 } else { return MyFun(a); // вызвать функцию снова, вначале MyFun(10), затем MyFun(20) } } alert(MyFun(5)); } </script>
Возврат массива из функции
<button type="button" id="raz">нажать</button> <script> document.getElementById('raz').onclick = function() { function MyFun(a) { return [a*2, a*3, a*4]; } alert(MyFun(5)[1]); } </script>
Комментариев нет: