数字的比较并不像预期的那样发生,NaN行为

时间:2017-01-19 09:49:11

标签: javascript html numbers

我有两个变量;

var x = '23b';
var y = '23a';

现在我有一个可以比较的逻辑,如果它们相等,我想要执行某些事情

注意:两者在比较时,如果两者都是NaN仍然应该通过条件

我尝试过使用此

if (Number(x) == Number(y)) 

即使两者都是NaN

,也会返回false

4 个答案:

答案 0 :(得分:0)

为何选择数字?

只需使用parseInt

if (parseInt(x, 10) == parseInt(y, 10)) 

NaN上的行为具有误导性

只是安慰这个     NaN == NaN

您将获得值为false

答案 1 :(得分:0)

您可以使用isNAN

var x = '23b';
var y = '23a';
if(isNAN(x) && isNAN(y))
alert("both are NAN");

答案 2 :(得分:0)



var x = '23b';
var y = '23a';
console.log(parseFloat(x)===parseFloat(y));




答案 3 :(得分:0)

尝试使用Object.is()

var x = '23b';

var y = '23a';

Object.is(Number(x),Number(y)); => true

此处也回答了...... https://stackoverflow.com/a/48300450/617797