JavaScript中的内置函数parseInt和parseFloat

1、使用内置函数 parseInt() 将字符串转换为整型。该函数的第二个参数表示字符串所表示数字的基(进制):

parseInt("123", 10); // 123
parseInt("010", 10); //10

如果调用时没有提供第二个参数(字符串所表示数字的基),2013 年以前的 JavaScript 实现会返回一个意外的结果:

parseInt("010");  //  8  (2013之前的)
parseInt("010");  //  10 (现在的默认十进制)
parseInt("0x10"); // 16

这是因为字符串以数字 0 开头,parseInt() 函数会把这样的字符串视作八进制数字;同理,0x开头的字符串则视为十六进制数字。

如果想把一个二进制数字字符串转换成整数值,只要把第二个参数设置为 2 就可以了:

parseInt("11", 2); // 3
2、内置函数 parseFloat(),用以解析浮点数字符串,与parseInt()不同的地方是,parseFloat()只应用于解析十进制数字。

单元运算符 + 也可以把数字字符串转换成数值:

+ "42";   // 42
+ "010";  // 10
+ "0x10"; // 16

如果给定的字符串不存在数值形式,函数会返回一个特殊的值 NaN(Not a Number 的缩写):

parseInt("hello", 10); // NaN

要小心NaN:如果把 NaN 作为参数进行任何数学运算,结果也会是 NaN

NaN + 5; //NaN

可以使用内置函数 isNaN() 来判断一个变量是否为 NaN

isNaN(NaN); // true

JavaScript 还有两个特殊值:

Infinity(正无穷)和 -Infinity(负无穷):

1 / 0; //  Infinity
-1 / 0; // -Infinity

可以使用内置函数 isFinity()来判断一个变量是否是一个有穷数, 如果类型为Infinity, -InfinityNaN则返回false

isFinite(1/0); // false 
isFinite(Infinity); // false 
isFinite(NaN); // false 
isFinite(-Infinity); // false 

isFinite(0); // true 
isFinite(2e64); // true 

isFinite("0"); // true,如果是纯数值类型的检测,则返回false:Number.isFinite("0");
备注: parseInt() 和 parseFloat() 函数会尝试逐个解析字符串中的字符,直到遇上一个无法被解析成数字的字符,然后返回该字符前所有
数字字符组成的数字。使用运算符 "+" 将字符串转换成数字,只要字符串中含有无法被解析成数字的字符,该字符串都将被转换成 NaN
parseInt("11.1as"); // 11
+ "11.1ss" ; //NaN


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值