JavaScript中有三個能夠吧非數值轉換成數值;Number();parseInt()和parseFloat();函數
Number():spa
1.若是是Boolean值,true和false分別被轉換爲1和0;code
2.若是是數字,只是簡單的傳入和返回;blog
3.若是是null值,則返回0;ip
4.若是是undefined,則返回NaN;字符串
5.若是是字符串:class
1).若是字符串中只包含數字,則將其轉化爲十進制數;二進制
2).若是包含有效的浮點格式,則將其轉化爲對應的浮點數值;di
3).若是字符串包含十六進制格式,則將其轉換爲相同大小的十進制整數;co
4).若是是空字符串,則將其轉換爲0;
5).若是字符串包含上述格式以外的字符,則將其轉換爲NaN;
實例:
1 var num1 = Number("Hello world!"); //NaN 2 var num2 = Number(""); //0 3 var num3 = Number("000011"); //11 4 var num4 = Number(true); //1
parseInt():
1.會忽略字符串前面的空格,直至找到第一個非空格字符。
2.若是第一個字符不是數字字符或者負號,則返回NaN;
3.若是字符串中的第一個字符是數字字符,也能識別出各類整數格式(即十進制,八進制和十六進制);
實例:
1 var num1 = parseInt('1234sky'); //1234 2 var num2 = parseInt(''); //NaN 3 var num3 = parseInt('0xA'); //10(十六進制數) 4 var num4 = parseInt(22.5); //22 5 var num5 = parseInt(070); //56(八進制數) 6 var num6 = parseInt(70); //70(十進制數) 7 var num7 = parseInt(0xf); //15(十六進制數)
4.能夠給parseInt提供第二個參數,轉換時使用的基數(即多少進制);
實例:
1 var num1 = parseInt('0xAF',16); //175 2 var num2 = parseInt('AF',16); //175 3 var num3 = parseInt('AF'); //NaN 4 var num4 = parseInt('10',2); //2(二進制) 5 var num5 = parseInt('10',8); //8(八進制) 6 var num6 = parseInt('10',10); //10(十進制) 7 var num7 = parseInt('10',16); //16(十六進制)
parseFloat():
1.與parseInt()函數相似;
2.字符串中的第一個小數點是有效的,而第二個就是無效的了;
3.始終都會忽略前導的0;
4.只解析十進制;
5.若是是一個能夠解析爲整數的數,會返回整數;
實例:
1 var num1 = parseFloat('1234sky'); //1234 2 var num2 = parseFloat('0xA'); //0 3 var num3 = parseFloat('22.5'); //22.5 4 var num4 = parseFloat('22.34.4'); //22.34 5 var num5 = parseFloat('0908.5'); //908.5 6 var num6 = parseFloat('3.125e7'); //31250000