Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > как работает return


Автор: o.s.a. 31.7.2005, 17:34
Это понятно:
Код

function A () {
var  x = 2;
return x;
}
document.write(A()); // выводит 2;
y = A();  // присваивает y = x = 2;

НО что означает это:
Код

function B() {
 If (/*условие*/) return; // ЧТО здесь делает return
}

Автор: Mal Hack 31.7.2005, 17:37
return - завершает выполнение функции и может возвращать значение, а может и нет.

Автор: o.s.a. 31.7.2005, 18:25
Т.е. если функция не содержит ретерна, то будет ошибка?

Автор: Mal Hack 31.7.2005, 18:33
Нет. ошибки не будет.
return нужен либо для принудительного выхода из функции или возврата значения с выходом из функции.

Автор: o.s.a. 31.7.2005, 18:41
Спасибо. smile

Автор: Sardar 31.7.2005, 19:32
Любя функция(и не только в JS) возвращает какое-нибудь значение, void например если значения никакого не было smile В JS если мы не пользуемся return или не передаём команде значение, то по умолчанию возращаеться undefined.

Пример:
Код
function test(a) {
  if(a) return; //компилятор "сгенерит" return undefined;
  alert('test');
  //в конце функции компилятор сам сгенерит return undefined;
}
function test2(a) {
  if(a) return "test"; //возвращаем значение
  //а здесь компилятор снова сгенерит return undefined;
}


Таким образом вызов любой функции оканчиваеться на return, просто некоторые вещи предварительный компилятор выполняет за нас smile

Автор: Aliance 15.8.2005, 18:36
В дополнение к сказанном Сардаром:
return - это инструкция JavaScript. Зарезервированное ключевое слово JavaScript.
Она (инструкция) служит для завершения работы чего-либо. Например, на ровне с инструкцией break она может использоваться в инструкции switch
Код

function return_test(x) {
   switch(typeof x) {
      case 'number': // возвращаем строку из преобразованного числа
      return x.toString();
      case 'boolean': // возвращаем строку в верхнем регистре
      return x.toString.toUpperCase();
   }
}

Автор: Gregof 16.8.2005, 07:37
Цитата(Aliance @ 15.8.2005, 18:36)
Она (инструкция) служит для завершения работы чего-либо.

Исключительно для завершения работы функции. И работает только внутри функции, если поместить этот оператор вне тела функции то получим ошибку.
Цитата(Aliance @ 15.8.2005, 18:36)
Например, на ровне с инструкцией break она может использоваться в инструкции switch
Если оператор break - прерывает работу оператора switch, то return - прерывает работу функции, что я считаю совсем не "на ровне". В данном примере можно сказать лишь, что при использовании оператора return использование оператора break становиться излишним поскольку завершение работы функции неотвратимо повлечет заверешние, внутренней для этой функции, операции switch.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)