JavaScript函数始终返回一个值,无论它是undefined
还是特定值。
让我们考虑一下这个功能:
function myFt(array) {
for (let i = 0; i < array.length; i++) {
if (array[i] === 10) {
return true
}
}
}
当作为参数传递的数组包含值true
时,此函数返回10
,否则返回undefined
,因为到达函数末尾时未指定返回值。 / p>
从我的经验中学到,使事情变得尽可能明确是一种很好的做法。编写返回特定值或默认undefined
的JavaScript函数是否可以接受?还是不管出现什么问题我都应该明确返回一个值?
答案 0 :(得分:0)
可以不返回任何东西,一点也不清除,但这是可行的。
如果不返回任何内容,则默认情况下将返回undefined。您可以像这样调用函数:
if(myFt(someData)){
// you have returned something
}else{
// you returned nothing
}
答案 1 :(得分:0)
无论如何,是否定义显式return。它将始终返回NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.getMenu().clear();
if(role.equals("parent")){
navigationView.inflateMenu(R.menu.drawer);
}
else
{
navigationView.inflateMenu(R.menu.drawer1);
}
。
undefined
返回的let array = [1,2,10,5];
let array1 = [1,2,7,5];
function myFt(array) {
for (let i = 0; i < array.length; i++) {
if (array[i] === 10) {
return true
}
}
}
console.log(myFt(array));
console.log(myFt(array1));
值可以通过以下方式轻松检查。
undefine
答案 2 :(得分:0)
您可以在函数的末尾使用显式的return
statement和false
来防止undefined
,这是在任何Javascript函数末尾返回的默认值。>
您可能会考虑使用相同类型的返回值,因为如果使用它来检查数组中的值,则需要布尔值而不是truthy / falsy值无需转换即可更快地进行检查。
// returns either true or false, depending on a value of the array
function has10(array) {
for (let i = 0; i < array.length; i++) {
if (array[i] === 10) {
return true;
}
}
return false;
}
答案 3 :(得分:0)
您可以根据需要执行此操作,但需要在最后检查返回值,更喜欢返回一个中性值
// neutral values
let string = ""
let number = 0
如果您不检查就返回未定义,这是可以添加的内容
function noReturn() {}
console.log(`1 + noReturn() = ${1 + noReturn()}`)
console.log(`1 + 0 = ${1 + 0}`)
console.log(`"string" + noReturn() = ${"string" + noReturn()}`)
console.log(`"string" + "" = ${"string" + ""}`)
如您所见,由于您返回的是未定义的
,因此可能会发生一些意外行为对于布尔值,因为undefined
是一个falsy
值,没问题