在if语句中使用函数的返回值

时间:2011-07-15 11:29:41

标签: javascript function syntax

希望这里有一个简单的问题。

你能在if语句中使用函数的返回值吗?即。

function queryThis(request) {

  return false;

}

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

非常简单明了我很确定,但是我遇到了一些语法错误的问题,我无法确定问题。

5 个答案:

答案 0 :(得分:9)

您只需使用

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

function queryThis(parameter) {
    // some code
    return true;
}

答案 1 :(得分:4)

您不仅可以在JavaScript中使用if语句中的函数,而且几乎所有编程语言都可以使用这些函数。这个案例在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 :(得分:2)

在排序中,是的,你可以。如果你知道它将返回一个布尔值,你甚至可以使它更简单:

if ( isBar("foo") ) {
  doSomething();
}

答案 3 :(得分:1)

这应该不是问题。我也没有看到语法有什么问题。 确保您可以捕获变量中的返回值,看看是否能解决您的问题。 这样也可以更容易地检查从函数中返回的内容。

答案 4 :(得分:0)

是的,你可以提供它在你的例子中返回一个布尔值。