javascript - 在条件语句中使用函数

标签 javascript function conditional-statements

我一直在做欧拉项目是有原因的。有一次,我发现自己想要将一个值与函数的结果进行比较。此后我选择了不同的解决方案,但这让我很好奇。这将如何运作?如果我要做类似的事情:

//javascript
if x == mathyFunction(10){
  //do this
}

function mathyFunction(y){
  if(y>0){
    mathyFunction(y-1);
    return y;
  } else {
    return y;
  }
}

我知道这不是尾递归或任何奇特的东西,我主要只是好奇这背后的逻辑是如何工作的。

计算机会如何解释它?如果任何一个值== x,它会返回true,还是仅当所有值== x时才返回true。实验让我猜测,但我会继续挖掘。

最佳答案

您没有指定您要询问的语言,但假设 return 语句的通常语义,函数不能返回多次。因此,如果“单独返回所有值”,您的意思是这样的:

function f() {
  return 1;
  return 2;
  ...
}

那么第一个 return 之后的所有内容都只是死代码,就好像 return 1 是其中唯一的 return 语句一样。函数调用只有一个值,该值就是您要比较的值。

如果您的意思是 mathyFunction 返回一个列表或其他集合对象,其中包含 xy 之间的值,则 x 将与该列表进行比较。同样,语义将取决于语言,但在大多数语言中,将数字与列表进行比较要么是类型错误,要么只是 false

如果通过单独返回值来引用yield语句(例如C#的yield return或Python的yield),那么函数的结果将是某种迭代器对象,并且与上一段中的内容相同。

关于javascript - 在条件语句中使用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39813623/

相关文章:

mysql列列表只检查其中一个有值(value)

php - 检查 "is not null"或空字符串的 PHP 语法是什么?

javascript - .appendChild() 是否会终止 child 与其当前 parent 之间的亲子关系?

javascript - 为什么我一直收到 "Cannot find module ' socket.io'”?

javascript - PixiJS : Load custom font

function - Trap ERR 异常行为(无限循环)取决于函数的定义方式

python - 从函数调用时显示混淆矩阵

c++ - 根据 C++ 签名获取 Mangled Symbol Name

Mysql select查询计数直到达到with条件的条件

javascript - 如何增加span元素内的文本