Что возвращает функция javascript при отсутствии оператора return?
Мне просто интересно, функция без оператора return (или без нажатия каких-либо операторов return) возвращает значение, которое полностью эквивалентно false?
например:
function foo(){};
!!foo();
Это должно вернуть false, если выполняется в firebug (но ничего не возвращает, если я просто вызвал foo ();).
Спасибо большое!
Джейсон
3 ответа:
функция без оператора return (или та, которая завершает свое выполнение, не нажимая на него) вернет
undefined
.и если вы используете унарный оператор отрицания дважды на
undefined
значением, вы получитеfalse
.вы ничего не видите на консоли, потому что Firebug не печатает результат выражения, когда он не определен (просто попробуйте ввести
undefined;
в консоли, и вы ничего не увидите).однако, если вы называете
console.log
функция непосредственно, и вы сможете увидеть его:function foo(){} console.log(foo()); // will show 'undefined'