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

时间:2019-02-13 04:54:29

标签: javascript typescript ionic-framework

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

因此,该函数将使用变量gen,如果它是true,它将返回'Female',但如果是'Male',则将返回false

在实现它的那一刻,它只为我提供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'

谢谢

3 个答案:

答案 0 :(得分:0)

也许布尔变量是字符串格式。

尝试一下:

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

答案 1 :(得分:0)

您的代码没有什么问题,只需在参数列表中传递正确的参数即可。

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'));

答案 2 :(得分:0)

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

实际上gen被视为不是布尔值的字符串。因此,您正面临这个问题。由于gen被视为字符串,因此您只需将其与字符串值进行比较就可以解决它。