希望这里有一个简单的问题。
你能在if语句中使用函数的返回值吗?即。
function queryThis(request) {
return false;
}
if(queryThis('foo') != false) { doThat(); }
非常简单明了我很确定,但是我遇到了一些语法错误的问题,我无法确定问题。
答案 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)
是的,你可以提供它在你的例子中返回一个布尔值。