欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

js字符串转化为数字

最编程 2024-01-15 18:56:25
...

方法

将字符串转为数字的方法有3种

  1. 使用Number对字符串进行类型转换;
  2. 使用parseInt将字符串转换为整数;
  3. 使用parseFloat将字符串转换为整数或浮点数。

Number

Number对字符串进行类型转换。

  • 将空字符转换为数字0
  • 忽略首尾部空格
  • 识别小数和科学技术法
  • 字符串中不能出现非法字符

parseInt

parseInt方法将字符串转化为整数

  • 空字符转换为NaN
  • 忽略首尾部空格
  • 不识别小数点和科学计数法
  • 忽略数字后的非法字符

parseInt还支持第二个参数表示转换基数

parseInt(11, 2) // 3

二进制的11转换为10进制变成3

parseFloat

parseFloat方法将字符串转换为数字

  • 将空字符转换为NaN
  • 忽略首尾部空格
  • 识别小数和科学计数法
  • 忽略数字后的非法字符

区别

方法 识别.字符 识别e字符 空字符 首尾部空格 非法字符
Number true true 0 忽略 转化为NaN
parseInt false false NaN 忽略 忽略
parseFloat true true NaN 忽略 忽略

例子

情况 例子 Number parseInt parseFloat
空字符 "" 0 NaN NaN
整数 "10" 10 10 10
数字后方有非法字符 "1只" NaN 1 1
空格在前方 " 10" 10 10 10
空格在中间 "1 1" NaN 1 1
空格在末尾 "10 " 10 10 10
以0开头 "01" 1 1 1
小数 "0.1" 0.1 0 0.1
小数点开头 ".1" 0.1 NaN 0.1
含有"e" "2e1" 20 2 20
"e"开头 "e1" NaN NaN NaN
"e"结尾 "1e" NaN 1 1

对其中几种特殊情况解答:

  1. 首尾部空格会被忽略,字符串中间的空格会被识别为非法字符,所以Number('1 1') = NaN
  2. 对于".1",由于parseInt不识别小数点,第一个字符非法,转换为NaN
  3. 对于"2e1",由于parseInt不识别e,忽略e及之后字符,转换为2
  4. 对于"e1",由于不包含科学计数法的底数,e被识别为非法字符,全部转换为NaN
  5. 对于"1e",由于不包含科学计数法的指数,e被识别为非法字符,因此被Number转换为NaNparseIntparseFloat忽略e,转换为2