数值转换

微信号:css-js               

欢迎观临Web前端精髓~

有3个函数可以把非数值转换为数值: Number() 、 parseInt() 和 parseFloat() 。第一个函数,即转型函数 Number() 可以用于任何数据类型,而另两个函数则专门用于把字符串转换成数值。这3个函数对于同样的输入会有返回不同的结果。


Number() 函数的转换规则如下。


1. 如果是 Boolean 值, true 和 false 将分别被转换为1和0。

2. 如果是数字值,只是简单的传入和返回。

3. 如果是 null 值,返回0。

4. 如果是 undefined ,返回 NaN 。

5. 如果是字符串,遵循下列规则:

    * 如果字符串中只包含数字(包括前面带加号或头号的情况),则将其转换为十进制数值,即 “1” 会变成1, “123” 会变成123,而 “011” 会变成11(注意:前导的零被忽略了);

    * 如果字符串中包含有效的浮点格式,如 “1.1” ,则将其转换为对应的浮点数值(同样,也会忽略前导零);

    * 如果字符串中包含有效的十六进制格式,例如 “0xf” ,则将其转换为相同大小的十进制整数值;

    * 如果字符串是空的(不包含任何字符),则将其转换为0;

    * 如果字符串中包含除上述格式之外的字符,则将其转换为 NaN 。

6. 如果是对象,则调用对象的 valueOf() 方法,然后依照前面的规则转换返回的值。如果转换的结果是 NaN ,则调用对象的 toString() 方法,然后再次依照前面的规则转换返回的字符 串值。


根据这么多的规则使用 Number() 把各种数据类型转换为数值确实有点复杂。下面还是给出几个具体的例子吧。


var num1 = Number(“Hello world!”); // NaN

var num2 = Number(””); // 0

var num3 = Number(“000011”); // 11

var num4 = Number(true); // 1


首先,字符串 “Hello  world!” 会被转换为 NaN ,因为其中不包含任何有意义的数字值。空字符串会被转换为0。字符串 “000011” 会被转换为11,因为忽略了其前导的零。最后, true 值被转换为1。


看前端技术文章,就在Web前端精髓

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值