2

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

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

1 == '1'; //true

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

1 === '1'; // false

但是,在比较数字时如何避免这种情况?例如:

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

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

4

1 回答 1

0

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

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

或数字格式:

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

参考

于 2017-09-20T06:11:57.857 回答