【发布时间】:2020-11-30 05:41:46
【问题描述】:
我正在通过一些练习来学习 JS。其中之一是关于编写一个检查数字是否为素数的函数。这个练习的正确答案是这个:
const isPrime = num => {
for(let i = 2; i < num; i++)
if(num % i === 0) return false;
return num > 1;
}
我习惯于在 if 参数内插入 return false; 并在其外部插入 return num > 1; 或 return true;,就在结束 if 参数的右括号之后,与 if 一样声明我通常告诉我的函数“如果这个条件满足,返回这个”并且在关闭 if 声明之后我告诉它“...否则返回那个”。我不明白为什么在这种情况下,两个返回指令都被插入到参数中,这背后的逻辑是什么?
【问题讨论】:
-
return num > 1;不在 if 内部。它在 for 循环之后,即如果 for 终止而不转到if。您似乎因为缺少{}而感到困惑 -
return false不是参数,它在 if 块的主体中。return num > 1在if块的主体之外,甚至在for循环的主体之外。如果条件语句中只有一条指令,则可以省略{}(大括号),就像在这种情况下一样,因为你有return false否则你必须使用 if(num % i === 0 ) { 返回假; ... }
标签: javascript if-statement return logic