javascript - 为什么这个条件在没有 else 的 return 语句中起作用?

标签 javascript function

我认为 b 应该总是被返回,但条件是双向的。我读到建议不要在 c 中的 return 语句之后使用它。现在我知道 return 会停止该函数。

function min(a,b) {
  if(a<b) return a;
  return b; 
}

min(20,94);//20
min(20,4);//4

最佳答案

因为return完全脱离了函数。如果 return a 已经被击中,则 return b 永远不会被击中,而 return a 仅当 a 被击中时才会触发小于b

The return statement ends function execution and specifies a value to be returned to the function caller.

MDN's notes on return

在伪代码中,您的代码片段基本上执行以下操作:

  1. 它需要两个参数:ab
  2. 然后检查 a 是否小于 b,如果是,则返回 a - 函数在此结束。
  3. 如果第 2 部分中的检查失败,则会进入此部分并返回 b。函数到此结束。
分钟(20, 94)

此处 20 (a) 小于 94 (b),因此第 2 部分的检查结果为true 并返回 20。没有其他事情发生。

分钟(20, 4)

此处 20 (a) 小于 4 (b ),因此第 2 部分的检查结果为 false,我们继续执行第 3 部分,其中返回 4。没有其他事情发生。

关于javascript - 为什么这个条件在没有 else 的 return 语句中起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31858997/

相关文章:

javascript - 为什么 $(window).load() 在 IE10 中不起作用

javascript - 使用 Jest 进行测试时无法执行单击 Vuetify vSwitch

创建 int 函数,在发生错误的情况下无法返回有效的 int 值

javascript - 实现 Promise.all

javascript - clearInterval 不起作用,间隔未定义

javascript - React Context API 和避免重新渲染

c# - 将字符串转换为函数

c - 从函数返回矩阵

c - C中的函数压入栈

c - 打印二维字符数组,数字代表开头的行