当前位置: 代码迷 >> JavaScript >> 当我将布尔变量传递给函数时,if语句不起作用?
  详细解决方案

当我将布尔变量传递给函数时,if语句不起作用?

热度:84   发布时间:2023-06-12 13:53:05.0

我正在研究Ionic 4,在其中一页中,我需要根据性别显示字符串。

因此,该函数将采用变量gen ,如果为true ,则返回'Female' ,如果为false则返回'Male'

在实现它的那一刻,它只给我gen每个值的第一种情况(不管gen是true还是false)。

我尝试了==运算符, not运算符和===

它发生在其他返回值的函数中。

displayGender(gen: boolean): string {
 console.log(gen);
 if (gen) {
   console.log(gen);
   return 'Female';
 } else {
   return 'Male';
 }
}

我放了一些日志看。

例如,在我的测试之一中,我发送了一个false值,控制台输出false ,然后再次输出false ,这意味着它返回'Female'

谢谢

布尔变量可能是字符串格式。

尝试这个:

displayGender(gen: boolean): string {
 console.log(gen);
 if (gen == 'true') {
   console.log(gen);
   return 'Female';
 } else {
   return 'Male';
 }
}

您的代码没有错...只需在参数列表中传递正确的参数即可。

displayGender(gen: boolean): string {
 console.log(gen);
 if (gen) {
   console.log(gen);
   return 'Female';
 } else {
   return 'Male';
 }
}

console.log(this.displayGender(false));

根据您的代码,期望为布尔值。 您可能正在传递字符串值(如果是,则调整逻辑)。

displayGender(gen: boolean): string {
 console.log(gen);
 if (gen == 'true') {
   console.log(gen);
   return 'Female';
 } else {
   return 'Male';
 }
}

console.log(this.displayGender('false'));
displayGender(gen: boolean): string {
 if (gen == "true") {
   return 'Female';
 } else {
   return 'Male';
 }

实际上gen被认为是字符串而不是布尔值。 这就是为什么您要面对这个问题。 由于gen被视为字符串,因此您可以通过将其与字符串值进行比较来简单地解决它。

  相关解决方案