Number()

通过 Number() 转换函数传入一个字符串,它会试图将其转换为一个整数或浮点数直接量,这个方法只能基于十进制进行转换,并且字符串中不能出现非数字的字符,否则将返回 NaN

Number('123') // 123
Number('123.1234') // 123.1234

+

将字符串转换为数字最快速的方法是使用一元运算符 +

+'123'  // 123
+'123.123'  // 123.123
+'123,123' // NaN

如果不是一个纯数字,将返回 NaN

你也可以用-(减号)将其转化为负数值。

Math.floor()

Math.floor() 返回小于或等于一个给定数字的最大整数。可以理解 Math.floor() 为向下取整

Math.floor(4) // 4
Math.floor(45.95) // 45
Math.floor(45.05) // 45
Math.floor(-45.05) // -46
Math.floor(-45.95) // -46

parseInt() 和 parseFloat()

parseInt() 方法可解析一个字符串,并返回一个整数。

注意

  • 字符串中只返回第一个数字。
  • 开头和结尾的空格是允许的。
  • 如果字符串的第一个字符不能被转换为数字,那么 parseInt() 会返回 NaN
  • 在字符串以 0 为开始时旧的浏览器默认使用八进制基数。ECMAScript 5,默认的是十进制的基数。
parseInt('123') // 123
parseInt('123.1234') // 123
parseInt(' 1 2 3 ') // 1
parseInt('18 ACG') // 18
parseInt('hi 2') // NaN

parseInt('10', 10) // 10
parseInt('010') // 10
parseInt('10', 8) // 8
parseInt('0x10') // 16
parseInt('10', 16) //16

parseFloat() 方法可解析一个字符串,并返回一个浮点数。

  • 字符串中只返回第一个数字。
  • 开头和结尾的空格是允许的。
  • 如果字符串的第一个字符不能被转换为数字,那么 parseFloat() 会返回 NaN
// 小数
parseFloat('123') // 123
parseFloat('123.1234') // 123.1234
parseFloat('1 2 3') // 1
parseFloat('18 ACG') // 18
parseFloat('hi 2') // NaN