嗨,我开始使用JS,但仍然发生在这里的一些事情对我来说有点神秘。我的问题是为什么我的代码 resultMarcin 中的第三个变量在我的简单代码行中没有被考虑?
var ageMike = 25;
var ageTom = 30;
var ageMarcin = 90;
var heightMike = 178 * 5;
var heightTom = 150 * 5;
var heightMarcin = 210 * 5;
var resultMike = ageMike + heightMike;
var resultTom = ageTom + heightTom;
var resultMarcin = ageMarcin + heightMarcin;
if (resultMike > resultTom && resultMarcin) {
alert('Mike wins with score ' + resultMike);
} else if (resultTom > resultMike && resultMarcin) {
alert('Tom wins with score' + resultTom);
} else if (resultMarcin > resultMike && resultTom) {
alert('Marcin wins with score' + resultMarcin);
} else if (resultMike === resultTom && resultMarcin) {
alert("It's a tie");
}
答案 0 :(得分:4)
我认为你的问题是if statement。
if (resultMike > resultTom && resultMarcin) {
应该是
if (resultMike > resultTom && resultMike > resultMarcin) {
因为resultMarcin
在JavaScript中是truthy
。如果值> 0,则只会给您true
,因此您的if语句会显示:
if (resultMike > resultTom && true)
这意味着if的第二部分总是为true,所以实际上它只检查第一个mive和tom。
以下是有关它的更多信息: https://www.sitepoint.com/javascript-truthy-falsy/