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