eslint/no-loss-of-precision 正确性
它的作用
禁止数字字面量的精度丢失。
为什么这是个问题?
在某些情况下可能导致意外结果。 例如,在执行数学运算时。
在 JavaScript 中,数值根据 IEEE 754 标准以双精度浮点数形式存储。 由于这一特性,数值只能保留一定数量的数字精度。如果程序员输入了额外的数字, 这些数字将在转换为 Number 类型时丢失,从而导致意外或不正确的行为。
示例
此规则的错误代码示例:
javascript
var x = 2e999;javascript
var x = 9007199254740993;javascript
var x = 5123000000000000000000000000001;javascript
var x = 1230000000000000000000000.0;javascript
var x = 0x200000_0000000_1;此规则的正确代码示例:
javascript
var x = 12345;javascript
var x = 123.456;javascript
var x = 123.0;javascript
var x = 123e34;javascript
var x = 0x1fff_ffff_fff_fff;如何使用
要通过配置文件或 CLI 启用此规则,可以使用:
json
{
"rules": {
"no-loss-of-precision": "error"
}
}bash
oxlint --deny no-loss-of-precision