coconutGirl

把参数转换成数值的三种方法:Number(),ParseInt(),ParseFloat()

Number():

   入参                                                 出参

   true/false                                    1/0

   数值,如1                                   数值1

   空字符串                                     0

   字符串只包含有数字(如011)                         11(忽略前导0)

   字符串包含有效的浮点格式(如01.11)                      1.11(忽略前导0)

   字符串包含有效的十六进制格式(如0xf)                   十进制整数:15

   字符串包含除上面几种格式以外的字符(如000xf)               NAN

   对象                                    先调用obj.valueOf(),如果是NAN,则再调用obj.toString(),如果不能转换成数值,就返回NAN

 

ParseInt():  符合数值格式即被转成整数数值,其他则为NAN;路径为忽略空字符串,第一个字符如果不是数字或者负号,则为NAN

   入参                                     出参

   空字符串 / 第一个字符不是数字或者负号(如‘blue235’ / \'.23\' / \' \')          NAN

   \'123blue\'                                   123

   \'22.5\'                                    22

 

注意:ES3和ES5对于是否按照八进制和十六进制解析是有差异的,ES5不支持这么解析,所以可能会出错。为了明确能够按照我们希望的进制格式去解析,推荐指定进制格式。如parseInt(\'0xf\',16),即使是十进制数值,也建议标明是10进制,如parseInt(\'012\',10)。

 

ParseFloat():  符合数值格式即被转成浮点数数值,其他则为NAN;路径为忽略空字符串,第一个字符如果不是数字或者符号,则为NAN

1、parsefloat只解析十进制数据,所以会忽略前导0,因此如parsefloat(\'0xA\')会返回0

2、parsefloat解析字符串中第一个小数点,第二个小数点就是无效的字符了,停止往后解析

   入参                                    出参

   ‘1234blue’                                  1234

   \'0xA\'                                    0

   \'22.5.5\'                                   22.5

   \'098.5\'                                    98.5

     \'33.000\'                                   33

分类:

技术点:

相关文章: