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)
额外阅读
parseInt()与radix参数一起使用.这会禁用基数的自动检测(前导0 - >八进制,前导0x - >十六进制):
var number = parseInt('08', 10);
// number is now 8
Run Code Online (Sandbox Code Playgroud)