Javascript 多重返回功能不工作
我在一个主函数Javascript 多重返回功能不工作,javascript,Javascript,我在一个主函数validate中有许多函数,由于某种原因,这些函数不起作用。但是,如果函数validate包含一个函数,那么它就起作用了 function validate() { return textcheck("txtname"); return numcheck("txtnum"); // textcheck and numcheck function are here //doesn't work } function validate() {
validate
中有许多函数,由于某种原因,这些函数不起作用。但是,如果函数validate
包含一个函数,那么它就起作用了
function validate() {
return textcheck("txtname");
return numcheck("txtnum");
// textcheck and numcheck function are here
//doesn't work
}
function validate() {
return textcheck("txtname");// works fine
}
function validate() {
return numcheck("txtnum"); // works fine
}
为什么2在函数内部返回不起作用为什么不起作用
return
退出函数,因此第一次return
之后的代码永远不会运行
考虑以下功能:
function logs() {
console.log('I have been called');
return;
}
function doesNotLog() {
return;
console.log('I will not be called');
}
第一个函数将消息记录到控制台,因为在返回之前调用了console.log
第二个函数没有,因为return
在调用console.log
之前退出该函数
修正你的例子
如果要返回true
如果同时返回textcheck
和numcheck
返回a,可以使用逻辑and运算符&
:
// Returns true if both checks pass
function validate() {
return textcheck("txtname") && numcheck("txtnum");
}
function validate() {
return textcheck("txtname") && numcheck("txtnum");
}
如果需要两个测试中的任何一个通过,请使用OR运算符|
:
// Returns true if either check passes
function validate() {
return textcheck("txtname") || numcheck("txtnum");
}
function validate() {
return textcheck("txtname") || numcheck("txtnum");
}
如果要返回每个单独支票的状态,可以返回一个对象:
function validate() {
return {
textCheck: textcheck("txtname"),
numCheck: numcheck("txtnum")
}
}
return
遇到该函数时退出该函数,因此将永远无法到达第二个return
如果您的目标是返回真实值*如果两个函数调用中的任何一个都返回真实值,您可以使用|
:
// Returns true if either check passes
function validate() {
return textcheck("txtname") || numcheck("txtnum");
}
function validate() {
return textcheck("txtname") || numcheck("txtnum");
}
调用textcheck
,如果返回真实值,则返回该值;如果textcheck
返回错误的值,它将调用numcheck
并返回其结果
如果两个函数中的都返回truthy值,则您可以使用&&
:
// Returns true if both checks pass
function validate() {
return textcheck("txtname") && numcheck("txtnum");
}
function validate() {
return textcheck("txtname") && numcheck("txtnum");
}
调用textcheck
,如果返回一个假值*,则返回该值;否则它调用numcheck
,并返回结果
我建议学习一些基本的JavaScript教程
*“truthy value”和“false value”:JavaScript的
&&
和|
操作符并不总是像在许多其他语言中那样生成true
或false
。相反,它们寻找“真实”值(强制为true
)或“虚假”值(强制为false
)。伪值是0
,,NaN
,null
,未定义
,当然还有伪
;真正的价值观是其他一切。返回函数终止他。
如果要验证两个(或多个)值,请使用一条return语句
function validate() {
return textcheck("txtname") && numcheck("txtFname");
}
如果需要同时返回2个值,此解决方案可能会有所帮助。您只需要返回一个json对象
function validate() {
return {
txtname : textcheck("txtname"),
txtnum : numcheck("txtnum")
}
}
调用函数后,您可以获得如下值:
var result = validate();
// result.txtname
// result.txtnum
查看您的代码,如果textcheck()和numcheck()都成功,我假设您希望validate()返回success(true)。试试这个-
function validate() {
return textcheck("txtname") &&
numcheck("txtnum");
}
返回值中的值的数组expression@joews谢谢你的object方法…我不知道