Js数值转换,Number(),parseInt(),parseFloat()的使用规则总结

3个函数可以把非数值转成数值:Number()适用于所有类型,parseInt()和parseFloat()适用于字符串

一,Number()的适用规则:适用于所有类型

1,如果是布尔类型,true和false将分别被转换成1和0。

       var num1 = Number(true)   //1

2,如果是数值类型,只是会传入和返回。

       var num2 = Number(25)   //25

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

        var num3 = Number(null)    //0

4,如果是undefined,返回值为NaN。

       var num4 = Number(undefined)    //NaN

5,如果是字符串:

      ⑴,字符串只包含数值(包含正负号的情况),会转成对应的十进制。(前导0将为被忽略,即:'011'会转为11)

            var num5 = Number('-25');  //-25

            var num6 = Number('025');  //25

     ⑵,字符串为有效的浮点类型(包含正负号的情况),则会转成对应的浮点类型。(前导0将为被忽略,即:'01.1'会转为1.1)

              var num7 = Number('-2.5');  //-2.5

               var num8 = Number('-02.5');  //-2.5

     ⑶,字符串包含有效的十六进制格式,则会转成对应的十进制值。

              var num9 = Number('0xf'); //15

     ⑷,字符串为空,转为0。

              var num10 = Number(''); //0

    ⑸,字符串为除了上的格式以外,则会转为NaN。

                  var num11 = Number('Hello Word !') //NaN

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

二,parseInt()的适用规则:只能用于字符串

1,字符串为空,则返回为NaN。

       var intNum1 =parseInt('');   // NaN

2,字符串的第一个非空字符不是数字或正负号,则返回值为NaN。

       var intNum2 =parseInt('abc');   // NaN

3,字符串第一个有效字符为数字,继续解析,直至到一个非数字的字符。

         var intNum3 =parseInt('123abc');   // 123

         var intNum4 =parseInt('123abc321');   // 123

4,只会返回整数。(前导0将会被忽略)

         var intNum5 =parseInt('12.1');   // 12

          var intNum6 =parseInt('012.1');   // 12

5,字符串为‘0x’开头且后面为数字字符,则会转成十六制进行解析。

          var intNum7 =parseInt('0xf');    //15

6,如果0开头且后面为数字 在ECMAScript3中当做八进制解析,但是在ECMAScript5中不支持。

         var intNum8 =parseInt('070');    //56  在ECMAScript3中

         var intNum9 =parseInt('070');    //70  在ECMAScript5中

7,支持使用基数的用法。parseInt(字符串,基数)

    var intNum10 =parseInt('10',2);    //2 (按二进制解析)

    var intNum11 =parseInt('10',8);    //8 (按八进制解析)

    var intNum12 =parseInt('10',10);    //10 (按十进制解析)

    var intNum13 =parseInt('10',16);    //16 (按十六进制解析)

三,parseFloat()的适用规则:只能用于字符串

1,字符串为空,则返回为NaN。

       var floatNum1 =parseFloat('');   // NaN

2,字符串的第一个非空字符不是数字或正负号,则返回值为NaN。

       var floatNum2 =parseFloat('abc');   // NaN

3,字符串第一个有效字符为数字,继续解析,直至到一个非数字的字符。

         var floatNum3 =parseFloat('123abc');   // 123

         var floatNum4 =parseFloat('123abc321');   // 123

4,字符串中第一个小数点有效,之后的小数点则无效。

         var floatNum5 =parseFloat('15.2.55');   // 15.2

5,不能区分八进制和十六进制。

     var floatNum6 =parseFloat('070');   // 70

     var floatNum7 =parseFloat('0xf');   // 0

6,没有指定基数的用法。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------如遇到问题:+WX:WAZJ-0508,及时联系---------------------------------------------------------------------------------------------------------------------------------------------------

发布了58 篇原创文章 · 获赞 41 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/Zeng__Yi/article/details/84978952