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方法…我不知道