JavaScript 强制类型转换二(Number)

        var a="123";
    
        console.log(typeof a);
        console.log(a);

未转换前a的类型为string,值为 “123”。

21:08:04.538 string at 强制类型转换.html:15
21:08:04.541 123 at 强制类型转换.html:16

方法一:调用Number()函数

 (1)string转number

        var a="123";
        a=Number(a);

21:11:49.556 number at 强制类型转换.html:15
21:11:49.561 123 at 强制类型转换.html:16 

注:1.如果是纯数字的字符串,则直接将其转换为数字

        2.如果字符串中有非数字的内容,则转换为NaN

        3.如果字符串是一个空串或者是一个全是空格的字符串,则转换为0

 (2)boolean转number

        a=true;        //false
        a=Number(a);

21:26:47.665 number at 强制类型转换.html:16
21:26:47.668 1 at 强制类型转换.html:17

  (3)null转number

        a=null;
        a=Number(a);

21:29:04.067 number at 强制类型转换.html:16
21:29:04.069 0 at 强制类型转换.html:17 

 (4)undefined转number

        a=undefined;
        a=Number(a);

21:31:01.745 number at 强制类型转换.html:16
21:31:01.748 undefined at 强制类型转换.html:17

缺陷:对于非纯数字字符串无法转换(比如123abc),方法二可解决该问题

方法二:parseInt()函数、 parseFloat()函数

(1)parseInt()函数:

        var a="123.456abc";
        a=parseInt(a);

21:37:39.571 number at 强制类型转换.html:15
21:37:39.573 123 at 强制类型转换.html:16 

(2)parseFloat()函数(相比parseInt()可以获取小数):

        var a="123.456abc";
        a=parseFloat(a);

21:42:13.795 number at 强制类型转换.html:15
21:42:13.798 123.456 at 强制类型转换.html:16 

* 如果对非String使用parseInt()或parseFloat(),它会先将其转换为String然后在操作,所以类型为null和undefined经转换后值不是0或者1。

        a=true;
        //a=undefined;
        a=parseInt(a);

21:51:34.001 number at 强制类型转换.html:17
21:51:34.003 undefined at 强制类型转换.html:18

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值