prefer-numeric-literals
禁止 parseInt()
和 Number.parseInt()
支持二进制、八进制和十六进制字面
一些该规则报告的问题可以通过 --fix 命令行选项 自动修复
parseInt()
和 Number.parseInt()
函数可用于将二进制、八进制和十六进制字符串转换为整数。由于 ES6 支持二进制、八进制和十六进制字面,因此该规则鼓励使用这些数字字面而不是 parseInt()
或 Number.parseInt()
。
0b111110111 === 503;
0o767 === 503;
规则详情
如果使用两个参数调用此规则,则不允许调用 parseInt()
或 Number.parseInt()
:字符串;以及 2(二进制)、8(八进制)或 16(十六进制)的基数选项。
此规则的错误代码示例:
/*eslint prefer-numeric-literals: "error"*/
parseInt("111110111", 2) === 503;
parseInt(`111110111`, 2) === 503;
parseInt("767", 8) === 503;
parseInt("1F7", 16) === 503;
Number.parseInt("111110111", 2) === 503;
Number.parseInt("767", 8) === 503;
Number.parseInt("1F7", 16) === 503;
tvK23x9kXaq858zZ8KSDe/grTZY5yefhuA6McIGYa61ulXJimhCmlRPtj/MyWaVD
/*eslint prefer-numeric-literals: "error"*/
/*eslint-env es6*/
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);
何时不使用
MSZJiU+EhK62U4v7OWAUqcky0owiGDSi3vNSZ3DipPhZN3rJdFLPwSsPwaviXlFmSjB0dxq8rLhyJBCQMGEIzj1ENnJMKNhkVqjxHeW3KsoN3WBdPaAMTR5Fxz/numrb3lo1fSlhMM9j8DhJU00RGx2SYi3XHxAR0sEtZzdH/F62MOzccLyDmQaUS2jSxLEGqiFY7ZKJ3GdKqt+JJsRPEsR6RUP71nktDVfqAMfr1PaJE1YfqJrAn6Gy0kC76+cXQ7rfnEpi0k+baqiRE+naFqnKozAiywjqEXY3fsjYyRFGoWmxEvAUlj+oHwhdOxVGIn706KoHhLols4q9HU0WlMYdPTn1gUHaXZ7WtKC4/io=
兼容性
- UJClmMyqFd40rpszglFBI1/d44fLCrY43t54OaDP735OzeRQfqQZeUnGptw5QWdatTArsev/C+z5UxO+mPHmrEOvfC38xLLnrDWVzG49FI6GAZzBlXsLZTekDftLqvdZBwz72OrLnURoFvmEaI+06A==