函数 return 布尔语句

Function return boolean statement

任务说明

你在这个 activity 中的任务是创建一个函数,通过检查一个人的年龄来检查一个人是否达到可以投票的年龄。此函数称为 isOldEnoughToVote(age) 并具有以下规范: 它需要一个名为 age 的参数来表示人的年龄。 它检查年龄是否大于或等于 18 岁。 如果 returns 基于该比较是真还是假。

这是我到目前为止写的,但它说结果未定义,我想知道为什么。

let response;
var age = 18
// Add your code here
function isOldEnoughToVote(age) {
 if (age >= 18){
   result; 'true'
 }else{
   result; 'false'
 } 
   

您的代码示例使用 result; 'true'(例如)来指示 true 结果。这没有任何作用 - 事实上它根本不正确。

应该使用 return true:

让回应;

function isOldEnoughToVote(age) {
  if (age >= 18) {
    return true;
  } else {
    return false;
  }
}

console.log(isOldEnoughToVote(10));
console.log(isOldEnoughToVote(18));
console.log(isOldEnoughToVote(50));

然而,这可以通过返回 age >= 18:

的结果进一步简化

function isOldEnoughToVote(age) {
  return age >= 18;
}

console.log(isOldEnoughToVote(10));
console.log(isOldEnoughToVote(18));
console.log(isOldEnoughToVote(50));

几个错别字:; 应该是 = 而你实际上应该 return 一个布尔值,而不是一个字符串值:

function isOldEnoughToVote(age) {
  return age >= 18;
} 

console.log(isOldEnoughToVote(17)); // false
console.log(isOldEnoughToVote(18)); // true

或者,如果您更喜欢 Arrow functions

const isOldEnoughToVote = (age) => age >= 18;

// The first => is an arrow function's "Fat Arrow"
// The second >= is an greater-or-equal operator

console.log(isOldEnoughToVote(17)); // false
console.log(isOldEnoughToVote(18)); // true

关于你的代码,还有那个 response 变量,但你从来没有给它赋值,而是试图用那个 result; 'true'.

做一些事情

如果你真的需要return两个字符串"true""false" 你可以这样做:

function isOldEnoughToVote(age) {
  if (age < 18) {
    return "false";
  } else {
    return "true";
  }
} 

console.log(isOldEnoughToVote(17)); // "false"
console.log(isOldEnoughToVote(18)); // "true"

或者使用箭头函数和 Ternary operator ?:

const isOldEnoughToVote = (age) => age < 18 ? "false" : "true";

console.log(isOldEnoughToVote(17)); // "false"
console.log(isOldEnoughToVote(18)); // "true"

或者您可以使用 .toString():

将布尔值转换为字符串

const isOldEnoughToVote = (age) => (age >= 18).toString();

console.log(isOldEnoughToVote(17)); // "false"
console.log(isOldEnoughToVote(18)); // "true"

但我仍然认为您的任务应该是 return 布尔值,而不是字符串 :)

let response;
var age = 18
// Add your code here
function isOldEnoughToVote(age) {
 if (age >= 18){
   return true;
 } else {
   return false;
 } 
}

console.log(isOldEnoughToVote(18));

console.log(isOldEnoughToVote(8));

该错误表示函数内的变量 result 未定义。

虽然您根本不需要这样做,return 直接使用布尔值。

function isOldEnoughToVote(age) {
  if (age >= 18) {
    return true;
  } else {
    return false;
  }
}

在上面,您不需要 else 因为它是唯一的其他结果。所以你可以这样做:

function isOldEnoughToVote(age) {
  if (age >= 18) {
    return true;
  }
  return false;
}

或者您可以更简单地 return 比较结果。

function isOldEnoughToVote(age) {
  return age >= 18;
}