【问题标题】:(JavaScript) Compare function with == always returning false [duplicate](JavaScript)比较函数与 == 总是返回 false [重复]
【发布时间】:2019-05-31 12:02:52
【问题描述】:

我的函数接受用户输入,如果数字相同则输出为真,否则输出为假。现在我的应用程序总是将其输出为假。对不起,如果这是糟糕的代码,我是菜鸟。

我尝试将“== NaN”替换为“

function compare(a, b) {
  if (a == b) {
    var valid = true;
  } else {
    var valid = false;
  }
  return valid;
}

function test(first, second) {
  if (!isNaN(first) && !isNaN(second)) {
    alert(compare(first, second));
  } else {
    alert('TRY AGAIN');
  }
}


var firstStr = prompt('Enter first Number:');
var first = new Number(firstStr);

var secondStr = prompt('Enter second Number:');
var second = new Number(secondStr);

test(first, second);

我没有收到任何错误消息,但是我总是将其卡在 false 上,如果我的代码有任何其他问题,请告诉我。

【问题讨论】:

标签: javascript


【解决方案1】:

您正在使用 new Number() 这将导致 {} 这就是为什么它总是错误的

function compare(a, b) {
console.log(a,b)
    if (a == b) {
        var valid = true;
    } else {
        var valid = false;
    }
    return valid;
}

function test(first, second) {
    if(!isNaN(first) && !isNaN(second)){
        alert(compare(first, second));
    } else {
        alert('TRY AGAIN');
    }
}


var firstStr = prompt('Enter first Number:');
var first = Number(firstStr);

var secondStr = prompt('Enter second Number:');
var second = Number(secondStr);

test(first, second);

【讨论】:

    【解决方案2】:

    当您使用new Number(firstStr) 时,您创建的对象不仅仅是它的值。

    如果您只想使用纯整数,请删除单词new,它将仅返回其值。

    如果您打算保留new,则需要在compare 函数中检查a.valueOf()b.valueOf()

    【讨论】:

      【解决方案3】:

      只需删除 new Number()

      // same code ...
      
      var firstStr = prompt('Enter first Number:');
      var first = firstStr; // remove new Number()
      
      var secondStr = prompt('Enter second Number:');
      var second = secondStr; // remove new Number()
      
      test(first, second);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-13
        • 2015-02-17
        • 1970-01-01
        • 2013-01-25
        • 1970-01-01
        相关资源
        最近更新 更多