a. 如果字符串中只包含數字時,將其轉換為十進制數值,忽略前導0
b. 如果字符串中包含有效浮點格式,如“1.1”,將其轉換為對應的浮點數字,忽略前導0
c. 如果字符串中包含有效的十六進制格式,如“0xf”,將其轉換為相同大小的十進制數值
d. 如果字符串為空,將其轉換為0
e. 如果字符串中包含除上述格式之外的字符,則將其轉換為NaN
例:
var num1 = Number("Hello world"); //NaN var num2 = Number(""); //0 var num3 = Number("0000011"); //11
處理整數的時候parseInt()更常用。parseInt()函數在轉換字符串時,會忽略字符串前面的空格,知道找到第一個非空格字符。
如果第一個字符不是數字或者負號,parseInt() 就會返回NaN,同樣的,用parseInt() 轉換空字符串也會返回NaN。
如果第一個字符是數字字符,parseInt() 會繼續解析第二個字符,直到解析完所有後續字符串或者遇到了一個非數字字符。
parseInt()方法還有基模式,可以把二進制、八進制、十六進制或其他任何進制的字符串轉換成整數。
基是由parseInt()方法的第二個參數指定的,所以要解析十六進制的值,當然,對二進制、八進制,甚至十進制(默認模式),都可以這樣調用parseInt()方法。
例:
var num1 = parseInt("AF",16); //175 var num2 = parseInt("AF"); //NaN var num3 = parseInt("10",2); //2 (按照二進制解析)
var num4 = parseInt("sdasdad"); //NaN
與parseInt() 函數類似,parseFloat() 也是從第一個字符(位置0)開始解析每一個字符。也是一直解析到字符串末尾,或者解析到遇見一個無效的浮點數字字符為止。
也就是說,字符串中第一個小數點是有效的,而第二個小數點就是無效的了,它後面的字符串將被忽略。
parseFloat() 只解析十進制,因此它沒有第二個參數指定基數的用法
如果字符串中包含的是一個可解析為正數的數(沒有小數點,或者小數點後都是零),parseFloat() 會返回整數。
例:
var num1 = parseFloat("123AF"); //123 var num2 = parseFloat("0xA"); //0 var num3 = parseFloat("22.5"); //22.5 var num4 = parseFloat("22.3.56"); //22.3
var num5 = parseFloat("0908.5"); //908.5