&引用;“未定义”;在Javascript中计算两个字符串变量时

&引用;“未定义”;在Javascript中计算两个字符串变量时,javascript,Javascript,这个程序似乎工作得很好,直到我有两个字符串输入。返回的结果是“未定义”。为什么会这样?如何将输出设置为:return“无法比较关系,因为“+x+”和“+y+”不是数字” 函数关系(x,y){ var notDigit=isNaN(x)+isNaN(y); if(x==y&¬Digit==false){ 返回“=”; }else if(x>y&¬Digit==false){ 返回“>”; }否则,如果(x问题在于isNaN('Test')+isNaN('Test')等于2,则不是真的。

这个程序似乎工作得很好,直到我有两个字符串输入。返回的结果是“未定义”。为什么会这样?如何将输出设置为:return“无法比较关系,因为“+x+”和“+y+”不是数字”

函数关系(x,y){ var notDigit=isNaN(x)+isNaN(y); if(x==y&¬Digit==false){ 返回“=”; }else if(x>y&¬Digit==false){ 返回“>”;
}否则,如果(x问题在于
isNaN('Test')+isNaN('Test')
等于2,则不是真的。这是因为当您尝试将
true
强制转换为一个数字时,通过将其添加到另一个数字,它强制转换为1。因此
isNaN('Test')+isNaN('Test'))
执行为
1+1
。请尝试将
notDigit
更改为

var notDigit = isNaN(x) || isNaN(y); 

嗯,这是什么?
isNaN(x)+isNaN(y)
??顺便说一句,不要做
==true
。这是多余的。这用于x和y都是数字的情况。我做不到这一点?
isNaN
返回一个布尔值,而您正在将一个布尔值添加到另一个布尔值,这没有意义。
var notDigit = isNaN(x) || isNaN(y);