我正在研究js中的条件语句。但是这个剧本遇到了两个问题 1)无论用户输入如何,脚本都不会处理else子句。 2)我的警报方法首先打印if alert(),然后打印一个未定义的警报()。 Idk为什么会这样。
<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。
请告知并感谢所有人。
答案 0 :(得分:0)
您正在使用2个警报:一个在另一个内部..并且还会重置您的温度值。
使用此:
function temperature (temp)
{
if(temp <= 69) {
return "Turn on the heat.";
} else {
return "It is hot enough.";
}
}
答案 1 :(得分:0)
有几件事:
1)您将变量temp
设置为70,因此它会覆盖您的输入。
2)prompt()
函数返回一个字符串,然后您将其传递到您正在尝试将其与整数进行比较的温度函数。使用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)));
...