【发布时间】:2017-02-10 08:04:45
【问题描述】:
我一直在做 Project Euler 的原因。有一次,我发现自己想将一个值与一个函数的结果进行比较。从那以后我选择了一个不同的解决方案,但这让我很好奇。这将如何工作?如果我要这样做:
//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。实验让我猜测,但我会继续挖掘。
【问题讨论】:
-
从您的代码中,我看到 mathyFunction 将 10 的值降至零并始终返回 0。然后将其与 x 进行比较,如果 x 不为 0,则为 false。
-
@nocturns2 不是返回 0,而是返回
y。 -
你是对的。我指的是 y 的值,这就是您要与 x 的值进行比较的值。
-
@nocturns2
x与 10 进行比较,因为这是为y传递的值。 -
老实说,我不确定您的代码是否能正常工作。应该是
mathyFunction(y){ return y>0? mathyFunction(--y) : y }
标签: javascript function conditional