Javascript - 是否可以有 3 个“if”变量或者这是一个错误?

标签 javascript html debugging if-statement var

我是一名新的 JavaScript 程序员,最近正在创建一个用户 ID 页面(基本上它会显示您的姓名长度、您的年龄,以及大概您的标志。

现在的问题是,当我创建符号部分(函数 mySigno() )时,我插入了 2 个可能的月份(Janeiro - 一月和 Fevereiro - 二月),但我为 Março - 三月插入了相同的“if”,该功能甚至不起作用。

<center><button type="button" onclick="mySigno()">Qual é o meu signo?</button></center>

<script>
  function mySigno()
  {
    var Signo_baseado_no_mes = prompt("Em que mês nasceste? (ex.: Julho)")

    if(Signo_baseado_no_mes === "Janeiro")
    {
      var Signo_no_mes_de_Janeiro = prompt("Em que dia de Janeiro nasceste? (ex.: 16)")
    }

    if(Signo_no_mes_de_Janeiro <= 20)
    {
      alert("O teu signo é Capricórnio!")
    }

    if(Signo_no_mes_de_Janeiro >= 21)
    {
      alert("O teu signo é Aquário!")
    }

    if(Signo_baseado_no_mes === "Fevereiro")
    {
      var Signo_no_mes_de_Fevereiro = prompt("Em que dia de Fevereiro nasceste? (ex.: 18)")
    }

    if(Signo_no_mes_de_Fevereiro <= 19)
    {
      alert("O teu signo é Aquário!")
    }

    if(Signo_no_mes_de_Fevereiro >= 20)
    {
      alert("O teu signo é Peixes!")
    }

    if(Signo_baseado_no_mes === "Março")
    {
      var Signo_no_mes_de_Março = prompt("Em que dia de Março nasceste? (ex.: 4)")
    }

    if(Signo_no_mes_de_Março <= 20)
    {
      alert("O teu signo é Peixes!")
    }

    if(Signo_no_mes_de_Março >= 21)
    {
      alert("O teu signo é Áries!")
    }
  }
</script>

在 mock 我的代码之后,请尝试解释一下出了什么问题,谢谢!

P.S.:对所有葡萄牙语内容表示抱歉,在回答时将任何文本更改为英语都没有问题(也对可能的英语不好表示抱歉)。

最佳答案

稍微重构了您的代码 - 现在它可以按预期工作。也会赞同@jgitter 的意见。

function mySigno() {   
  var msg = 'Em que dia de %s nasceste? (ex.: 16)';
  var month = window.prompt('Em que mês nasceste? (ex.: Julho)');
  var day = window.prompt(msg.replace(/%s/, month));
  day = parseInt(day, 10);

  switch (month) {
  case 'Janeiro':
  case 'janeiro':
    if (day <= 20) {
      window.alert('O teu signo é Capricórnio!');
    } else {
      window.alert('O teu signo é Aquário!');
    }
    break;
  case 'Fevereiro':
  case 'fevereiro':
    if (day <= 19) {
      window.alert('O teu signo é Aquário!');
    } else {
      window.alert('O teu signo é Peixes!');
    }
    break;
  case 'Março':
  case 'março':
    if (day <= 20) {
      window.alert('O teu signo é Peixes!');
    } else {
      window.alert('O teu signo é Áries!');
    }
    break;
  }
}

关于Javascript - 是否可以有 3 个“if”变量或者这是一个错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21999349/

相关文章:

html - 为什么 float 和 text-align 在 td 中表现不同?

调试 JNI 模块中的特定访问冲突

javascript - JS : How to solve this [object Promise]?

javascript - 了解对象构造函数中使用的原型(prototype)

javascript - 查找没有 Id 的表单并向其添加输入元素

HTML/CSS : Specify number of lines inside <span>

debugging - 如何描述本地函数(跟踪)?

Java 修改控制台输出以进行调试

javascript - 用于移动设备的 HTML5、JS 游戏引擎

javascript - 未捕获的类型错误 : Cannot read property 'reload' of undefined