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