我制作了函数,接受用户输入,如果数字相同则输出为true,否则为false。现在,我的应用程序始终将其输出为false。抱歉,如果这是错误的代码,我是菜鸟。
我尝试将“ == NaN”替换为“ <0”,但没有成功。
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上,如果我的代码还有其他问题,请告诉我。
答案 0 :(得分:0)
使用new Number(firstStr)
时,您正在创建一个对象,该对象不仅包含其值。
如果只想使用普通整数,则删除单词new
,它将仅返回其值。
如果您打算保留new
,则需要在a.valueOf()
函数中检查b.valueOf()
和compare
。
答案 1 :(得分:0)
您使用的是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 :(得分:0)
只需删除新的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);