2021.05.28(js parseInt()与Number()区别)

1.parseInt():

     parseInt(string,radix):将字符串解析转化为数字类型,返回的是整数;

          string:待被解析的字符串;

        radix:表示要解析转换的进制

       PS:(如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。如果该参数小于 2 或者大于 36,则 parseInt() 将                返 回 NaN);

alert(parseInt("10")) ; //10
alert(parseInt("19",10));   //19,1*10^1+9*10^0=19
alert(parseInt("11","2"));  //3,1*2^1+1*2^0=3
alert(parseInt("17","8"));  //15,1*8^1=7*8^0=15

当遇到数字后带有字符串,则只返回前面的数字(例parseInt(123mgn)=123),如果字符串的第一个字符不能被转换为数字,那么 parseFloat() 会返回 NaN。

2.Number():

      Number(object):将对象的值转换为数字;

        如果对象的值无法转换为数字,那么 Number() 函数返回 NaN。

       如果参数是 Date 对象,Number() 返回从 1970 年 1 月 1 日至今的毫秒数。

<script type="text/javascript">

var test1= new Boolean(true);
var test2= new Boolean(false);
var test4= new String("999");
var test5= new String("999 888");

document.write(Number(test1)+ "<br />");  //1
document.write(Number(test2)+ "<br />");  //0
document.write(Number(test4)+ "<br />");  //999
document.write(Number(test5)+ "<br />");  //NaN

</script>

为了更直观的体会两者之间的区别,我们看一下两种方法的结果:

//当字符串只有数字组成
var numbeTrans="9898";
alert(parseInt(numberTrans));  //9898
alert(Number(numberTrans));   //9898

//当数字只有字母组成
var numbeTrans="abab";
alert(parseInt(numberTrans));  //NaN
alert(Number(numberTrans));  //NaN

//当字符串由字母与数字组成
var numbeTrans="123ab";
alert(parseInt(numberTrans));  //123
alert(Number(numberTrans));  //NaN

//当字符串为小数时
var numbeTrans="123.123";
alert(parseInt(numberTrans));  //123
alert(Number(numberTrans));  //123.123

//当字符串为空null时
var numbeTrans="null";
alert(parseInt(numberTrans));  //NaN
alert(Number(numberTrans));   //0

//当字符串为空“ ”时
var numbeTrans=" ";
alert(parseInt(numberTrans));  //NaN
alert(Number(numberTrans));   //0

3.parseFloat( ):

与parseInt()一样,parseFloat()也可以解析以数字开头的部分数字字符串(非数字部分字符串在转换过程中会被去除)。

与parseInt()不同的是,parseFloat()可以将字符串转换成浮点数;但同时,parseFloat()只接受一个参数,且仅能处理10进制字符串。 
(1)字符串中的第一个小数点是有效的,而第二个小数点就是无效的了,因此它后面的字符串将被忽略。 
(2)如果字符串包含的是一个可解析为整数的数(没有小数点,或者小数点后面都是零),parseFloat()会返回整数。

var num1=parseFloat("1234blue");    //1234

var num2=parseFloat("0xA");         //0

var num3=parseFloat("0908.5");      //908.5

var num4=parseFloat("3.125e7");     //31250000

var num5=parseFloat("123.45.67")    //123.45

var num6=parseFloat("")             //NaN

var num7=parseFloat("num123")       //NaN

 

2021-05-28  16:37:12

posted @ 2021-05-28 16:40  铁打的代码流水的bug  阅读(83)  评论(0)    收藏  举报