javascript - 在 JavaScript 中我需要什么 return 语句?
问题描述
我正试图将我的头脑围绕在 return 声明上,但我看不出我应该使用一个的理由。我的代码不使用一个就可以正常工作......在这两个示例中,10
无论我是否使用 return,我的控制台都会打印出来。
无回报:
var sum = 5;
function myFunction() {
sum += 5;
}
myFunction();
console.log(sum);
有回报:
var sum = 5;
function myFunction() {
return sum += 5;
}
myFunction();
console.log(sum);
解决方案
默认情况下,函数返回值undefined。如果您希望函数返回一些其他值,则需要有一个 return 语句。
您还可以使用 return 语句根据某些逻辑停止函数的执行,再次返回具有某种含义或只是未定义的值。
在 OP 的第一个示例中,函数被调用并且返回值不用于任何事情,因此返回值是什么并不重要,并且不需要 return 语句。
在另一种情况下,返回值可能很重要,例如生成 0 到 10 之间的整数随机数的函数:
function getRandomInteger(){
return Math.floor(Math.random() * 11);
}
function showRandomNumber() {
document.getElementById('s0').textContent = getRandomInteger();
}
<button onclick="showRandomNumber()">Show random number</button>
<span id="s0"></span>
上面getRandomInteger函数需要返回一个特定的值,所以它使用了return语句。showRandomNumber函数只显示随机数,因此它不需要 return 语句,因为调用者(按钮上的侦听器)并不关心返回值是什么。
推荐阅读
- reactjs - 如何重构代码以使用反应循环遍历对象数组?
- hibernate - Hibernate - 使用复合主键(@idClass)时无法插入新记录,因为它保留了自动生成的属性
- oracle - 如何在 oracle 11g 中使用一条 INSERT 语句在一列中插入多行
- rust - 如何在将共同值移动到新集合中时使两个 HashSet 相交?
- android - 为多个视图设置动画会导致动画冻结
- angular - 如何限制ErrorHandler的范围?
- java - onActivityResult not executed after contact picked
- javascript - 如何解析多行复杂的正则表达式模式?
- javascript - 如何在下一个/上一个按钮上垂直滚动 div
- python - 如何从 Python numpy 3D 数组到 2D 到 1D 回到 2D(保留 3D 数组的原始第 2 维和第 3 维)