1.首先,关于NaN的相等判断
alert(NaN==NaN) //返回的是false;
2.isNaN 确定这个参数是否是数值或者是否可以被转化为数值;NaN是not a number 的缩写,所以如果能转化为数值,则是false,不能被转化为数值,返回的是true;
alert(NaN); //返回NaN alert(isNaN(NaN)) //返回true; alert(isNaN(10)); // 返回false; alert(isNaN("10")); // 返回false; alert(isNaN("blue")); // 返回true; alert(isNaN(true)); // 返回false; alert(isNaN(false)); //返回false
3.Number()
①.布尔值 true和false会转化为1和0;
②.数字 简单的传入传出;
③.null 返回0;
④.undefined 返回NaN;
⑤.字符串则需要遵循以下规则;
㈠. 如果字符串中只包括数字(包括前面带正负号的情况),则将其转换未十进制数,即“1”=>1,“123”=>123,"011"=>11(前导零忽略)。
㈡.如果字符串中包含浮点格式,如“1.1”则将其转换未对应的浮点数值。
㈢.如果字符串中包含有效的浮点格式,例如:“0xf”,则将其转化为大小相同的十进制数值。
㈣.如果支付转是空的(不包含任何字符),则将其转换为0.
㈤.如果字符串中包括上述格式之外的字符,将其转化为NaN;
alert(Number("kdf1233")); //返回NaN
var num2 = Number(true) alert(num2) //返回1
4.ParseInt()
var num1=parseInt("1234blue");//1234 var num2=parseInt("");//NaN var num3=parseInt("oxA");//10(十六进制) var num4=parseInt(22.5);//22 var num5=parseInt("070");//56(八进制) var num6=parseInt(70);//70(十进制) var num7=parseInt("0xf")//15(十六进制)