Использование числовых литералов
Запретить parseInt() и Number.parseInt() в пользу двоичных, восьмеричных и шестнадцатеричных литералов
Некоторые проблемы, выявленные этим правилом, могут быть автоматически исправлены с помощью опции --fix командной строки
Функции parseInt() и Number.parseInt() могут использоваться для преобразования двоичных, восьмеричных и шестнадцатеричных строк в целые числа. Поскольку двоичные, восьмеричные и шестнадцатеричные литералы поддерживаются в ES6, это правило рекомендует использовать эти числовые литералы вместо parseInt() или Number.parseInt().
0b111110111 === 503;
0o767 === 503;
Подробное описание правила
Это правило запрещает вызовы parseInt() или Number.parseInt(), если они вызываются с двумя аргументами: строкой и опцией radix со значением 2 (двоичная), 8 (восьмеричная) или 16 (шестнадцатеричная).
Примеры неправильного кода для этого правила:
/*eslint prefer-numeric-literals: "error"*/
=== 503;
=== 503;
=== 503;
=== 503;
=== 503;
=== 503;
=== 503;
Примеры правильного кода для этого правила:
/*eslint prefer-numeric-literals: "error"*/
parseInt(1);
parseInt(1, 3);
Number.parseInt(1);
Number.parseInt(1, 3);
0b111110111 === 503;
0o767 === 503;
0x1F7 === 503;
a[parseInt](1,2);
parseInt(foo);
parseInt(foo, 2);
Number.parseInt(foo);
Number.parseInt(foo, 2);
Когда не следует использовать
Если вы хотите разрешить использование parseInt() или Number.parseInt() для двоичных, восьмеричных или шестнадцатеричных целых чисел, или если вы не используете ES6 (потому что двоичные и восьмеричные литералы не поддерживаются в ES5 и ниже), вы можете отключить это правило.
Совместимость
- JSCS: requireNumericLiterals
Версия
Это правило было введено в ESLint v3.5.0.
Ресурсы
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/prefer-numeric-literals