JS将其他类型值转为Number类型

最近在项目中,频繁的使用到了要将其他类型转成number类型的情况,方法有几种,转换的结果也有些区别,做为一个前端开发的基本功,本文测试了各种方法转换的结果。

但是,由于情况特别多,也不可能涉及所以场景,根据“二八原则”先掌握大部分常见的的吧~

本文其他类型主要指string、number、boolean、undefined 、null五种数据类型,以及一种引用类型object。

方法1:使用Number()函数 【推荐】

  • 纯数字字符串可以直接转换为数字

    注意:

    • 正数—— 如果第一位是0,0会被去掉;

    • ​小数—— 如果最后一位是0会被去掉;如果小数点前没有数会补0;如果有多个小数点则转化为NaN。

  • 字符串若为空,则转为0

  • 字符串里有非数字,则转化为NaN

  • 布尔值true转为1,false转为0

  • null转为数字0,undefined和空对象{}都转为NaN

Number("");        // 0

Number("0");       // 0
Number("010");     // 10
Number("-0");      // -0
Number("-010");    // -10

Number(".1");      // 0.1
Number("0.1");     // 0.1
Number(".10");     // 0.1

Number("-0.1");    // -0.1
Number("-0.10");    // -0.1

Number("0.1.2");   // NaN
Number("-0.1.2");  // NaN
Number("string");  // NaN

Number(true);   // 1
Number(false);  // 0

Number(null);      // 0
Number(undefined); // NaN
Number({
   
   });        // NaN

方法2: parseInt() / parsetFloat

  • parseInt()和parseFloat()是专门转换字符串的方法,可以将字符串中有效的整数或者浮点数取出来,从左往右,遇非数字,舍弃后边所有,故第一个若为非数字,则返回NaN
  • parseFloat()如果遇到有两个点,则舍弃第二个点,以及后面内容
  • parseInt()和parseFloat()对非string类型使用,会将其转换为string,然后再操作,会返回NaN
  • 若字符串为一个点 “.”,则parseInt()和parseFloat()都会返回NaN
  • 若字符串点后边有数字,parseInt()会返回NaN,parseFloat()会在第一个点的前边加一个0。

parseInt()方法 【推荐:转化成整数】

parseInt("");        // NaN(区别于Number)

parseInt("0");       // 0
parseInt("010");     // 10
parseInt("-0");      // -0
parseInt("-010");    // -0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

英子的搬砖日志

您的鼓励是我创作的动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值