我想知道在比较使用少于少于和高的javascript的数字时,我如何避免自动胁迫。
例如,我已经知道==操作员会制作类型的胁迫,例如:
1 == '1'; //true
and ===操作员不会:
1 === '1'; // false
但是,在比较数字时如何避免这种情况?例如:
1<2; //true
1<'2'; //true
1<'0'; //false
我想避免使用这种自动类型的胁迫。
通过Regexp字面使用拳击。例如:
console.log(/3.1/ > 3);
console.log(/3.1/.exec(3.1) > 3)
console.log((/Infinity/).toString().replace(///g,"") > 3)
或numberFormat:
console.log(new Intl.NumberFormat({}, {'style':'percent'}).format(2) > 1)
参考
-
快速参观JavaScript原始图:原始类型的自动箱 - Dave Mac - 中型
-
Regexp -JavaScript |mdn
-
即将出现的正则表达功能|Web |Google开发人员
-
JavaScript中的国际化状态 - 博客|sitepen
-
破坏Ecmascript 2015中的正则表达匹配|Marius Schulz
-
intl.numberformat -javaScript |mdn