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

wax*_*cal 7 javascript syntax function

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

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

function queryThis(request) {

  return false;

}

if(queryThis('foo') != false) { doThat(); }
Run Code Online (Sandbox Code Playgroud)

非常简单明了我很确定,但是我遇到了许多语法错误的问题,我无法确定问题所在.

VMA*_*Atm 9

你可以简单地使用

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

function queryThis(parameter) {
    // some code
    return true;
}
Run Code Online (Sandbox Code Playgroud)


Sae*_*ati 5

不仅可以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'); 
}
Run Code Online (Sandbox Code Playgroud)

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