我在JavaScript中有几个函数,其结果我想在另一个函数的if
语句中使用。
我的问题是只有第一个列出的子函数似乎返回结果。当我交换函数的顺序时,我仍然只从第一个列出的子函数中获得返回结果。
我是初学者,并不是所有熟悉功能的人。请参阅下面的示例。请具体说明任何答案。
function main(a) {
return functone(x); // name of function is actually "functone" for this example
return functtwo(y); // name of function is actually "functtwo" for this example
if(functone(x)!="true") {
return false;
} else {
if(functtwo(y)!="true) {
return false;
} else {
return true;
}
}
}
答案 0 :(得分:2)
您无法从一个函数返回两个值。所以你的代码应该是
function main(a){
if(functone(x)!="true")
{return false;} else
{if(functtwo(y)!="true")
{return false;} else {return true;}
}
}
答案 1 :(得分:0)
出现,只有两个被调用的函数都要返回true
。
典型的模式是:
function main(a) {
return functone(x) && functwo(y);
}
请注意,在这种情况下,如果functwo
的结果为funcone
(或更严格地说是“假”,即包括{0}},则false
将仅被调用null
或0
)因为&&
运算符是所谓的短路运算符。如果可以直接从左侧操作数确定操作结果,则不评估右侧操作数。
如果您希望调用functwo
而不管funcone
的结果如何,请将&&
运算符替换为按位&
运算符。
请注意,您的funcXXX
函数应该(如此函数)返回属性布尔值true
或false
,而不是字符串"true"
。