JS中有三種函數可以將非數值轉換成數值:Number()、parseInt()和parseFloat()。第一個函數,即轉型函數Number()可以用于任何數據類型,而另外兩個函數則專門用于把字符串轉換成數值。這3個函數對于同樣的輸入會返回不同的結果。
Number()函數的轉換規則如下:
	•如果參數是Date對象,返回從1970年1月1日至今的毫秒數。
	•如果是Boolean值,true和false將分別被替換為1和0
	•如果是數字值,只是簡單的傳入和返回
	•如果是null值,返回0
	•如果是undefined,返回NaN
	•如果是字符串,遵循下列規則: •如果字符串只包含數字(包括十六進制格式“0x”),則將其轉換成對應的十進制。
	•如果字符串是空的,返回0。
	•如果字符串包含其它字符,返回NaN。
•如果是對象,則調用對象的valueOf()方法,然后依照前面的規則轉換返回的值。如果轉換的結果是NaN,則調用對象的toString()方法,然后再依次按照前面的規則轉換返回的字符串值。
document.write(Number(true)+"<br/>"); //返回1document.write(Number(false)+"<br/>"); //返回0document.write(Number(null)+"<br/>"); //返回0document.write(Number(undefined)+"<br/>"); //返回NaNdocument.write(Number("001")+"<br/>"); //返回1document.write(Number("001.1")+"<br/>"); //返回1.1document.write(Number("0x10")+"<br/>"); //返回16document.write(Number(new String("11aa"))+"<br/>"); //返回NaN返回由字符串轉換得到的整數。
	parseInt(numString, [radix])
參數
numString必選項。要轉換為數字的字符串。radix可選項。在 2 和 36 之間的表示 numString 所保存數字的進制的值。如果沒有提供,則前綴為 '0x' 的字符串被當作十六進制,前綴為 '0' 的字符串被當作八進制。所有其它字符串都被當作是十進制的。
說明
parseInt()方法返回與保存在numString中的數字值相等的整數。如果numString的前綴不能解釋為整數,則返回NaN(而不是數字)。它會忽略字符串前面的空格,直至找到第一個非空格字符。
示例
document.write(parseInt("1")+"<br/>"); //返回1document.write(parseInt("  1")+"<br/>"); //返回1document.write(parseInt("1.1")+"<br/>"); //返回1document.write(parseInt("11aa")+"<br/>"); //返回11document.write(parseInt("020")+"<br/>"); //返回16(八進制)document.write(parseInt("")+"<br/>"); //返回NaNdocument.write(parseInt("AF")+"<br/>"); //返回NaNdocument.write(parseInt("AF",16)+"<br/>"); //返回175document.write(parseInt("0xAF")+"<br/>"); //返回175返回由字符串轉換得到的浮點數。
	parseFloat(numString)
必選項 numString 參數是包含浮點數的字符串。
說明
parseFloat()返回與numString中保存的數相等的數字表示。如果numString的前綴不能解釋為浮點數,則返回NaN(而不是數字)。
總結
以上所述是小編給大家介紹的JS轉換數值函數Number()、parseInt()、parseFloat(),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!
新聞熱點
疑難解答