警报不处理用户输入

alert does not process user input

我正在研究 js 中的条件语句。但是 运行 这个脚本有 2 个问题。
1) 无论用户输入如何,脚本都不会处理 else 子句。 2) 我的警报方法首先打印 if alert(),然后打印未定义的 alert()。不知道这是为什么。

<script>
function temperature (temp) 
{
var message="";
var temp = 70;
if(temp <= 69) {
    alert(message = "Turn on the heat.");
} else { 
    alert(message = "It is hot enough.");
            } 
}                                         
</script>

那么我的正文是:

<script>
var myTemp=prompt("Please enter your current temperature."); //prompt is ok
//alert fails to process else clause and then prints an undefined alert()  
alert(temperature(myTemp));     
</script>                   

我已经尝试从函数本身删除警报。但是,那会扼杀我的提示。

PS 我用 Sublime 3 和 jshint 但是这个问题不在 jshint 的管辖范围内,obv.

请大家多多指教,谢谢

您正在使用 2 个警报:一个在另一个警报中..并且还重置了您的温度值。

使用这个:

function temperature (temp) 
{
  if(temp <= 69) {
     return "Turn on the heat.";
  } else { 
     return "It is hot enough.";
  } 
}

几件事:

1) 您正在将变量 temp 设置为 70,因此它会覆盖您的输入。

2) prompt() 函数 returns 一个字符串,然后将其传递给温度函数,并在其中尝试将其与整数进行比较。使用 parseInt().

3) 您也在嵌套警报,因为您将 temperature() 放入警报中并且您的 temperature() 函数本身也会创建警报。二选一。

这就是我要改变的方式。

<script>
function temperature (temp){ 
    var message="";
    var temp = temp || 70;
    if(temp <= 69) {
        message = "Turn on the heat.");
    } else { 
        message = "It is hot enough.");
    } 
return message;
}                                         
</script>

然后:

...
alert(temperature(parseInt(myTemp)));
...