【问题标题】:Using function's return value in if statement在 if 语句中使用函数的返回值
【发布时间】:2011-07-15 11:29:40
【问题描述】:

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

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

function queryThis(request) {

  return false;

}

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

我敢肯定,这非常简单明了,但我遇到了许多语法错误问题,而且我无法确定问题所在。

【问题讨论】:

  • 对我来说看起来不错,但我会改用 !== false
  • 也许您应该发布带​​有语法错误的有问题的代码,而不是这个您可以轻松自己测试的简单示例。

标签: javascript function syntax


【解决方案1】:

你可以简单地使用

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-01-23
            • 1970-01-01
            相关资源
            最近更新 更多