var cat = prompt("What Do You Want To Tweet??!").length;
if (cat >= 140) {
confirm("Sorry but your Tweet was over the 140 character limit by: " + cat - 140);
confirm("You need to resubmit a Tweet that is not over the 140 Character limit");
} else {
confirm("Success, Your Tweet has been posted!");
}
我尝试了很多不同的东西,但这个Nan错误总是我最后的障碍,我无法得到。我很确定cat var不会被视为一个数字,但我不知道如何让计算机将其视为一个数字,我很确定我只需要了解这些基础知识。我也试过移动.length,但无济于事!
答案 0 :(得分:2)
你需要括号:
confirm("Sorry but your Tweet was over the 140 character limit by: " + (cat - 140));
这是因为+
是左关联的。因此,它首先将cat
附加到邮件中,然后尝试从中减去140
。这会尝试将邮件转换为数字,但该数字不起作用并返回NaN
。
顺便说一句,当你cat = prompt(...).length
时,你得到了长度,但你丢失了推文。您需要将响应放在变量中,然后获取其长度:
var tweet = prompt(...);
var cat = tweet.length;
答案 1 :(得分:1)
它与长度无关,它与操作顺序有关
您的代码基本上是
("string" + cat) - 140
您需要在计算周围添加括号,以便在连接之前进行计算。
"string" + (cat - 140)
答案 2 :(得分:0)
除了@Barmar所说的,如果你在开头减去它,你可以避免重复140:
var cat = prompt("What Do You Want To Tweet??!").length - 140;
if(cat < 0) {
confirm("Success, Your Tweet has been posted!");
} else {
confirm("Sorry but your Tweet was over the 140 character limit by: " + cat
+ "\n\n"
+ "You need to resubmit a Tweet that is not over the 140 Character limit");
}
但是,请考虑允许140个字符的消息。 IMO失败是因为超过140比0很奇怪。