当我调用这些函数时,为什么会有不同的结果?

时间:2019-04-26 10:27:47

标签: javascript

我使用过很多次JAVA,但以前从未使用过Javascript。我尝试了解它,现在这些功能有问题。功能相同但结果不同。此行之间的功能之间唯一的区别:Fragment

return joe;函数中,此代码位于“循环”外部,而在"rowSearch()"函数中,此代码位于“循环”内部。

如果我调用rowSearch2(),则JOE变量每次都具有返回值,但是当我调用rowSearch()函数时,有时没有任何返回值。也许我错过了,或者我做错了什么,但我看不到。

非常感谢您。

"rowSearch2()"

我想在表中找到一个值(srch输入)。如果在表中,那么我将调用具有JOE值的函数,否则调用其他函数。

1 个答案:

答案 0 :(得分:0)

正如@randomSoul已经提到的那样,这两个函数并不相等,但据我所知,JAVA在这里的行为相同。

函数内部某处的return语句立即停止该函数并返回值;甚至在循环内。

所以,您的两个功能都是伪代码

function rowSearch() {
  if the `innerHTML` of the first cell in **any row (except the first)** of the table equals `srch`
  then return 0 
  else return 1
}

我假设第一行是您的表头

function rowSearch2() {
  if the table has at least two rows
  then if the `innerHTML` of the first cell in **the second row** of the table equals `srch`
    then return 0 
    else return 1
  else return undefined
}

这里JS和Java之间的唯一区别是,在没有行的情况下,JS rowSearch2会隐式return undefined,而Java会抛出错误。 甚至可能没有编译,因为不是函数的每个路径都返回一个值。 Java不喜欢这种含糊不清;)