繁体   English   中英

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

[英]Using function's return value in if statement

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

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

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 中的所有功能。 Function is object, function is interface, function is return value of another function, function could be a parameter, function creates closures, etc. Therefore, this is 100% valid.

您可以在 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'); 
}

另外作为提示,当我们知道表达式是 Boolean 表达式时,为什么在if块中使用比较运算符

总的来说,是的,你可以。 如果你知道它会返回 boolean 你甚至可以让它更简单一点:

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

这应该不是问题。 我也看不出语法有什么问题。 确保您可以在变量中捕获返回值并查看是否可以解决您的问题。 这也将更容易检查从 function 返回的内容。

是的,您可以提供它在您的示例中返回 boolean 。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM