【问题标题】:Java script unable to identify all variables [closed]Javascript无法识别所有变量[关闭]
【发布时间】:2016-12-22 09:54:31
【问题描述】:

嗨,我刚开始使用 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");

}

【问题讨论】:

  • “不被考虑”是什么意思?你得到什么错误?
  • 您只检查 resultMarcin 是 true 还是 false
  • 我认为你想做if(resultMike > resultTom && resultMike > resultMarcin){/*your alert*/},因为它现在检查 resultMike 是否大于 resultTom 以及 resultMarcin 是否为真值。

标签: javascript variables if-statement


【解决方案1】:

我认为你的问题是 if 语句。

if (resultMike > resultTom && resultMarcin) {

应该是

if (resultMike > resultTom && resultMike > resultMarcin) {

因为 resultMarcin 在 JavaScript 中是 truthy。如果值 >0,它只会给你true,所以你的 if 语句说:

 if (resultMike > resultTom && true) 

这意味着 if 的第二部分始终为真,所以实际上它只检查 first mive 与 tom。

以下是有关它的更多信息: https://www.sitepoint.com/javascript-truthy-falsy/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-03
    • 2017-01-04
    • 2013-08-13
    • 1970-01-01
    • 1970-01-01
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多