number:正数、负数、0、小数、NaN
NaN
NaN:no a number,但是属于number类型 type of NaN --> "number"
NaN和NaN是不相等的 NaN==NaN --> false
isNaN:检测一个值是否是有效数字,是返回false,否返回true
console.log(isNaN(12)); --> false
console.log(isNaN(cataway)); --> true
console.log(isNaN("12")); --> false ,强制数据类型转换
Number() 强制转换
Number() :强制将其他数据类型强制转化成number类型,如果是字符串,要求字符串中全是数字才可以转换
Number("12"); -- >12
Number("12px"); -->NaN
var val=Number("12px");
if(val ==12){
console.log(12);
}else if(val ==NaN){
console.log(NaN);
}else{
console.log("都不成立");
}
输出 都不成立
parseInt()和parseFloat():非强制转换
从左到右,一个个字符查找,把是数字的转化为有效数字,直到遇到非有效数字,则终止
parseInt("12px"); --> 12
parseInt("cat12"); --> NaN
parseFloat("12.5px"); --> 12.5 可以多识别一个小数点
toFixed():保留小数点后面的位数,返回string
99.024.toFixed(1); --> "99.0" 保留一位小数
99.024.toFixed(2); --> "99.02" 保留两位小数
以此类推
值得注意的是,toFixed在firfox和chrome中表现得不一样,chrome中,会自动进行四舍五入,而firefox只是保留小数,不做任何处理。
Stack Overflow上有详细解答 http://stackoverflow.com/questions/10015027/javascript-tofixed-not-rounding