js parseInt()與Number()區別


說到轉換成數字類型,我首先想到的是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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM