DrunkMaster
@DrunkMaster

Пустой return в JS?

Поясните один момент если можно. Иногда вижу в JS функциях return без значения:
Оператор return используется для остановки выполнения функции и возвращения значения expression.
Если аргумент expression опущен или в функции не выполняется оператор return,
то выражению, вызвавшему текущую функцию, присваивается значение undefined.


Т.е. если я делаю:
var value = myfunction(2,2);
function myfunction(arg1, arg2){
   var r;
   r = arg1 * arg2;
   return;
}

То value следуя этой логике примет значение undefined. В чём фишка этой возможности ведь так легко допустить ошибку и не сразу заметить её. Или такой return нужен что бы вернуть выполнение программы в основной поток?
  • Вопрос задан
  • 4238 просмотров
Решения вопроса 2
IonDen
@IonDen
JavaScript developer. IonDen.com
Пустой return в конце функции не имеет смысла. Он и так там есть, скрытый.

Прямое указание return нужно в 3 случаях:
1. Если вы хотите вернуть значение. В вашем случае вы должны написать return arg1 + arg2;
2. Если вы хотите прервать выполнение функции как указал lemme .
3. Либо вы хотите сделать первое и второе одновременно:
function test (arg) {
    if (typeof arg === "number") {
        return +arg.toFixed(5);
    }

    if (typeof arg === "string") {
        return test_obj[arg];
    }

    return false;
}
Ответ написан
Комментировать
@lemme
Frontend
Логика простая, остановить выполнение функции.

function foo(data) {
	if (!Array.isArray(data)) {
  	return
  }
  
  // что-то делаем с массивом
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@m4son
проверка с пустым return проще, сравни
if (!elem-1) return;
// code
if (!elem-2) return;
// code
if (!elem-3) return;

if (elem-1) {
  // code
  if (elem-2) {
    //code
    if (elem-3) {
      //code
    }
  }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы