【发布时间】:2020-08-12 23:43:52
【问题描述】:
x = 4;
console.log(x);
var x = 10,
y = 2;
function z(x) {
while (x > 0) {
if (x > 0) {
break;
} else {
x = x - y;
return z(x);
}
return x;
}
}
console.log(x);
console.log(z(x) + z(x + y));
我需要解释最后一行的输出吗?,输出是NaN。
【问题讨论】:
-
你不会在所有路径上返回。
-
当你跳出循环时,你不会
return x;,因为它在循环内。也许你的意思是把那一行写下来?或将break更改为return x。 -
代码没有意义。只有在
x > 0时才进入循环体,因此if条件将始终为真。 -
@JeremyThille 错了,它适用于所有循环。
-
z(n) 始终未定义。将未定义的实体添加到任何其他实体会得到
NaN。说明请参考this。
标签: javascript