在if语句中使用函数'

Using function's return value in if statement

本文关键字:函数 if 语句      更新时间:2023-09-26

希望这里有一个快速的问题。

可以在if语句中使用函数的返回值吗?例如

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

非常简单和明显,我敢肯定,但是我遇到了一些语法错误的问题,我不能识别问题。

你可以直接使用

if(queryThis('foo')) { doThat(); }
function queryThis(parameter) {
    // some code
    return true;
}

您不仅可以在JavaScript中使用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块中使用比较运算符 ?

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

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

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

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