Что возвращает функция 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'