Использование возвращаемого значения функции в операторе if - PullRequest
7 голосов
/ 15 июля 2011

Надеюсь, здесь быстрый вопрос.

Можно ли использовать возвращаемое значение функции в операторе if?Т.е.

function queryThis(request) {

  return false;

}

if(queryThis('foo') != false) { doThat(); }

Очень просто и очевидно, я уверен, но я сталкиваюсь с рядом проблем с синтаксическими ошибками и не могу определить проблему.

Ответы [ 5 ]

9 голосов
/ 15 июля 2011

Вы можете просто использовать

if(queryThis('foo')) { doThat(); }

function queryThis(parameter) {
    // some code
    return true;
}
4 голосов
/ 15 июля 2011

Мало того, что вы можете использовать функции в операторах if в JavaScript, но вы можете делать это практически на всех языках программирования. Этот случай специально выделен в JavaScript, так как в нем функции являются простыми гражданами. Функции почти все в JavaScript. Функция - это объект, функция - это интерфейс, функция - это возвращаемое значение другой функции, функция может быть параметром, функция создает замыкания и т. Д. Следовательно, это допустимо на 100%.

Вы можете запустить этот пример в Firebug, чтобы убедиться, что он работает.

var validator = function (input) {
    return Boolean(input);
}

if (validator('')) {
    alert('true is returned from function'); 
}
if (validator('something')) {
    alert('true is returned from function'); 
}

Также в качестве подсказки, зачем использовать операторы сравнения в блоке if, когда мы знаем, что выражение является логическим выражением?

2 голосов
/ 15 июля 2011

В смысле, да, вы можете.Если вы знаете, что он вернет логическое значение, вы даже можете сделать его немного проще:

if ( isBar("foo") ) {
  doSomething();
}
1 голос
/ 15 июля 2011

Это не должно быть проблемой. Я тоже не вижу ничего плохого в синтаксисе. Чтобы убедиться, что вы можете перехватить возвращаемое значение в переменной и посмотреть, решит ли это вашу проблему. Это также облегчит проверку того, что вернулось из функции.

0 голосов
/ 15 июля 2011

Да, вы можете при условии, что он возвращает логическое значение в вашем примере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...