浅谈Number()数值转换

Number()转换

转换结果


由以上结果可以看出,浏览器在解析Number()转换时遵循以下规则:

基本规则

【1】 如果被转换的是布尔值,true和false分别被转换为1和0两个数字。

【2】 如果被转换的是数值,则只是进行传入和返回。

【3】如果被转换的是null,返回的是0.

【4】 如果被转换的是undefined,返回的是NaN。

字符串

【1】字符串只包含数字(包含正负号),则将其转换为十进制数值。

【2】字符串包含符合规则的浮点数字,则将其转换为对应的浮点数值。

【3】字符串包含符合规则的十六进制格式,则将其转换为同等大小的十进制整数值。

【4】字符串为空,则转换为0。

【5】字符串中包含除以上规则外的字符,转换为NaN。

对象

对象的转换,会调用valueOf()方法,再用前面的规则返回相应的值。如果转换的结果是NaN,则可以调用toString()方法,然后再用前面的规则转换得到的字符串。

注:

如果转换的是Date对象返回的是此刻到1970年1月1日0点0分0秒0毫秒的毫秒数。

总结

Number()在进行数值转换时,转换规则很复杂,尤其对于字符串而言。

补充

在转换字符串为数值时常常使用parseInt()函数和parseFloat()函数,他们的规则相对于Number()更加简单,规则更加自由一些。

参考书籍

JavaScript 高级程序设计

posted @ 2018-08-04 10:08  一只勤奋的羊  阅读(1174)  评论(0)    收藏  举报