在比较Javascript中的数字时如何避免自动类型强制?

时间:2014-03-06 15:31:47

标签: javascript comparison-operators integer-arithmetic coercion implicit-typing

我想知道在JavaScript中使用小于和高于运算符比较数字时如何避免自动强制。

例如,我已经知道==运算符会进行类型强制,例如:

1 == '1'; //true

而且===运算符不会,例如:

1 === '1'; // false

但是,比较数字时我怎么能避免这种情况?例如:

1<2; //true
1<'2'; //true
1<'0'; //false

我想避免这种自动类型强制。

1 个答案:

答案 0 :(得分:0)

通过RegExp文字使用装箱。例如:

&#13;
&#13;
console.log(/3.1/ > 3);
console.log(/3.1/.exec(3.1) > 3)
console.log((/Infinity/).toString().replace(/\//g,"") > 3)
&#13;
&#13;
&#13;

或NumberFormat:

&#13;
&#13;
console.log(new Intl.NumberFormat({}, {'style':'percent'}).format(2) > 1)
&#13;
&#13;
&#13;

<强>参考