Остановить выполнение скрипта | JavaScript

Оператор 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>
в f t
наверх ↑

Комментариев нет: