在JavaScript中,數值轉換一般有三種方式:
一、Number(param)函數:param可以用於任何資料型別
1.1 param是Boolean值,true和false分別轉換為1和0;
1.2 param是數值,只是簡單的傳入和回傳
1.3 param是null和undefined,分別回傳0和NaN
1.4 param是字串,遵循下列規則:
1.4.1 如果字串中只包含數字,則轉換為十進制,前導0被忽略;
1.4.2 如果字串中包含有效的浮點數格式,則傳回對應的浮點數值,前導0被忽略;
1.4.3 如果字串包含有效的十六進制,則傳回等大的十進制數值
1.4.4 如果字串為空,則回傳0
1.4.5 如果字串中包含除上述格式外的字符,則傳回NaN
1.5 param是對象,則呼叫valueOf()方法,依照前面的規則轉換回傳字串值,若回傳NaN,則呼叫toString()方法,再依照前面的規則轉換回傳字串值。
1.6 例:
<span style="font-family:Microsoft YaHei;font-size:18px;">var num1 = Number("hello"); //NaN var num2 = Number(""); //0 var num3 = Number("00022"); //22 var num4 = Number(true); //1</span>
二、parseInt(param):把字串轉換成整數,param是字串型。
parseInt()忽略字串前面的空格,直到找到第一個非空格字元S;若S不是數字或負號,則傳回NaN(即parseInt()對空字元傳回NaN,注意Number()對空返回0),若S是數字,parseInt()會繼續解析下一個字符,直到解析完所有字符或遇到了一個非數字字符。 parseInt()支援對八進位、十六進位的解析
<span style="font-family:Microsoft YaHei;font-size:18px;">var num1 = parseInt("1234blue"); //1234 var num2 = parseInt(""); //NaN var num3 = parseInt("22.5"); //22 var num4 = parseInt("070"); //八进制,转换为十进制的56</span>
三、parseIFloat(param):把字串轉換成浮點數,param是字串型。
與parseInt類似,parseFloat()從第一個字元開始解析,直到解析完所有字元或遇到了一個非浮點數字符。第一個小數點有效,但是第二個則無效,且該函數只能解析十進制數,因為它總是會忽略前導0.
<span style="font-family:Microsoft YaHei;font-size:18px;">var num1 = parseFloat("1234blue"); // 1234 var num2 = parseFloat("0xf6"); // 0 var num3 = parseFloat("22.5"); // 22.5 var num4 = parseFloat("22.5.4"); //22.5 var num5 = parseFloat("3.125e7"); // 31250000</span>