radix

使用 parseInt() 时强制使用 radix 参数

使用 parseInt() 函数时,通常会省略第二个参数,即基数,并让函数尝试根据第一个参数确定它是什么类型的数字。默认情况下,parseInt() 将自动检测十进制和十六进制(通过 0x 前缀)。在 ECMAScript 5 之前,parseInt() 还自动检测八进制字面,这会导致问题,因为许多开发人员认为前导 0 会被忽略。

这种混淆导致建议您始终使用 parseInt() 的 radix 参数来消除意外后果。所以不要这样做:

var num = parseInt("071");      // 57

做这个:

var num = parseInt("071", 10);  // 71

ECMAScript 5 改变了 parseInt() 的行为,使其不再自动检测八进制字面,而是将它们视为十进制字面。但是,第一个参数的十六进制和十进制解释之间的差异导致许多开发人员继续使用 radix 参数来确保以预期方式解释字符串。

bztA3s6R5nTkvJRWteEbDGkfnEKWmEbkTa+Du+qqOOojnHRdopWgvVDT9GBK/Rt9Z5CljQvvM8DGux4JaG67yxtiCL9gBv58H4QcPmMhL7GKI8oWYK6CyY4XYHVGwUMyec0DofpSxFwpNLgJ9AnszhUONbGy+mxoDb6Htr+S85G/1Ss8N8EbvyitJg8hDDK9/vRgEmC4uSdhkv1MAu3t/DMVgDYtylQsCuAAA4aIJDUhDpWoMusbS+Rz6YdVtlKi

规则详情

eKw1B42N5fg/8pd8784KAroZWFwUsh1E1kVG1dCcOiSAx4WfH6bPT2hNdroQuiic2qLRhfgptfE0VspPQoQGCodCU9vRdBc/xM08Dhuvfr0RTciTKUqZH3scoxFKkU2xC0PKnCFj4JQxXP1Q1jr74UmK0C9RiIGm3e82h5XMZNdcI6gQT+VSe+MFedTqa1Y3PbpsaXF0P7g2o62JBBvMlg==

选项

dcnt0DfOUSGdBki6r3shybmadxOvg4Gpa17u/CWocEg=

    uGIbK8FwF5TMuqSkeSyzLzAkOl54MGJbKwlRIDE00ZxUabcgAyjguKy03H38uIf7Hd5C0Q3ZkjbODW88JDsugWzMGqKDhhdi6GEBs7XWsLQfr/VDBfXx8j++TOFaW5MpHoUXDmK03AeiUcnKe4ZzmQpWItaCO7HYOinybfQl0W/6gNii5JeRrqSG15LHI3WA

always

G6F1lpCMxZMgq5rpSUinYcuzuxy34GngKTfMkXnNTBNL9916YAgtbZ9Xu9nl3PSZ7B8qitkFmyg4mhLoqzcKLA==

/*eslint radix: "error"*/

var num = parseInt("071");

var num = parseInt(someValue);

var num = parseInt("071", "abc");

var num = parseInt("071", 37);

var num = parseInt();

G6F1lpCMxZMgq5rpSUinYcuzuxy34GngKTfMkXnNTBNhEpqeBDer0/mtN9f1RdIZw3Zpr0FIf6xqxfdN1T2xMA==

/*eslint radix: "error"*/

var num = parseInt("071", 10);

var num = parseInt("071", 8);

var num = parseFloat(someValue);

as-needed

kU1YdhA0Pzm/rMc/xNeXB/y6NkT0LFccel2ZpA262V3yBvoNHEK3qbnMP/zGvyA/y2ayQRQM/h8mZVCLSryM3g==

/*eslint radix: ["error", "as-needed"]*/

var num = parseInt("071", 10);

var num = parseInt("071", "abc");

var num = parseInt();

kU1YdhA0Pzm/rMc/xNeXB/y6NkT0LFccel2ZpA262V3/3lntwUgOQbmRV9FSfIm4cX8+WqLGRNAJ5mGJHHNuHw==

/*eslint radix: ["error", "as-needed"]*/

var num = parseInt("071");

var num = parseInt("071", 8);

var num = parseFloat(someValue);

何时不使用

HSLDlSh4LJS/WDnCcK0ybTS//LqU/BuEkgtY7eZkelfsC2tv3qs3TB7DTKpbKLzZbeWHO2BtVERahs1IcXPbYzy7BlRq9S7jydsXxi+eOWruWernZIFxRCabuOEDO+03