Должен ли я что-то возвращать в функции javascript?

В функциях JavaScript мне нужно что-то возвращать (истина или ложь)? До сих пор все функции, которые я написал, ничего не возвращая, работали нормально. Мне просто любопытно.


person Moon    schedule 03.06.2011    source источник
comment
Они работают просто отлично, если вы не ожидаете, что они вернут что-то кроме undefined ;-) Но я думаю, что вопрос как бы ответил сам на себя.   -  person    schedule 03.06.2011
comment
Кроме того, только потому, что функция что-то возвращает, не означает, что вы должны что-то делать с возвращаемым значением.   -  person nnnnnn    schedule 03.06.2011


Ответы (3)


Нет; Функции Javascript не обязаны возвращать значение.

Если вы вызываете функцию, которая не return имеет значение, вы получите undefined в качестве возвращаемого значения.

person SLaks    schedule 03.06.2011
comment
То же самое касается функций, в которых есть return;. - person Alxandr; 03.06.2011
comment
И функции, которые могут выйти без выполнения одного из своих возвратов. - person Jeremy; 03.06.2011
comment
Я думаю, возможно, если вы вызываете функцию, а return не выполняется... или... если управление выходит за пределы функции, не встречая return или... - person ; 03.06.2011

нет, ты не знаешь. Я верю, если ты сделаешь

var result = iAmADefinedFunctionThatDoesntReturnAnything();

результат будет неопределенным.

Отредактируйте, этот снимок экрана должен быть ярким (простите за ошибку, когда я не могу вызвать f):

введите здесь описание изображения

person hvgotcodes    schedule 03.06.2011
comment
На самом деле, поскольку вы не определили функцию, она выдает ReferenceError. - person Hello71; 03.06.2011
comment
@привет71. Посмотрите наверх. Строка 1. var f = function(){} определенно определяет функцию - person hvgotcodes; 03.06.2011
comment
Кроме того, вы действительно должны использовать typeof для определения undefined. - person Hello71; 03.06.2011
comment
@ hello71, верно, я надеялся, что мы интуитивно поймем, что functionThatDoesntReturnAnything() на самом деле является определенной функцией, которая ничего не возвращает. ;) - person hvgotcodes; 03.06.2011
comment
@ hello71, хорошо, как насчет сейчас? ;) - person hvgotcodes; 03.06.2011

Нет, ты не

НО если вы обнаружите, что делаете что-то подобное

 function myFun(){
   if (1 == 2){
    return true ;
   }
 }

Теперь вы должны знать, что делаете что-то не так в своем коде, потому что бессмысленно, чтобы только часть функции возвращала значение.

person Mina Gabriel    schedule 22.10.2013
comment
Почему не будет смысла? Например, если вы хотите заполнить список поисковым запросом, но он не найден, вы можете ничего не возвращать. - person Alexander; 20.02.2018
comment
Потому что условие if всегда оценивается как нулевое, что мы называем мертвым кодом. - person Mina Gabriel; 21.02.2018