Оператор 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>
Комментариев нет: