如何将字符串(前导零或不是)转换为整数?

Dom*_*pan 12 javascript

如何将字符串(前导零或不是)转换为整数?例如,'08'8.

And*_*y E 18

有几种方法可以将字符串转换为数字,我更喜欢使用一元运算+符:

var number = +"08"; // 8
Run Code Online (Sandbox Code Playgroud)

这相当于写作:

var number = Number("08"); // 8
Run Code Online (Sandbox Code Playgroud)

不同parseInt(),当使用+Number()不需要基数时,因为内部数字转换不会解析八进制数.如果你想要parseInt()parseFloat()方法,它也很简单:

var number = parseInt("08", 10); // 8
Run Code Online (Sandbox Code Playgroud)

parseInt并且parseFloat对于用户输入的可靠性较低,因为这些函数可能认为无效的数字文字可以挽救并返回意外的结果.考虑以下:

parseInt("1,000");   // -> 1, not 1000
+"1,000";            // -> NaN, easier to detect when there's a problem
Run Code Online (Sandbox Code Playgroud)

额外阅读


Thi*_*ter 6

parseInt()radix参数一起使用.这会禁用基数的自动检测(前导0 - >八进制,前导0x - >十六进制):

var number = parseInt('08', 10);
// number is now 8
Run Code Online (Sandbox Code Playgroud)