- 字符串与数字相加时将数字转换为字符串,而进行其它运算(如:减,乘等)时将字符串转换为数字。
- 空字符串转为Boolean时为false,非空字符串(包括"false")转为true。
- 0和NaN转为Boolean时为false,其它数字转为true。
- true可隐式转为1,false转为0。
- false、null、""等:使用Number转为数字时转为0,而使用parseInt或parseFloat时都转为NaN。
任何类型的变量都有一个toString方法,当被转换数为数值型进,默认是以十进制输出这些数的。如:
var iHexNum = 0xF1; //十六进制数。 iHexNum.toString();//为"229"。 iHexNum .toString(2);//按二进制转换 iHexNum .toString(8);//按八进制转换 iHexNum .toString(16);//按十六进制转换
parseInt可以将二进制、八进制、十六进制或其它进制的字符串转换成整数。但parseFloat必须以十进制进行转换。
<script type="text/javascript"> alert(parseInt("110101",2));//按二进制转换,结果为53 alert(parseInt("110101",8));//按八进制转换,结果为36929 alert(parseInt("110101",10));//按十进制转换,结果为110101 alert(parseInt("110101",16));//按十六进制转换,结果为1114369 </script>
Number的强制类型转换与parseInt和parseFloat的处理方式不同的地方是:Number转换的是整个值,而不是部分值。如:
<script type="text/javascript"> alert(parseInt("12.12abc"));//12 alert(parseFloat("12.12abc"));//12.12 alert(Number("12.12abc"));//NaN </script>String()和toString()的唯一区别是可以将null和undefined强制转换成相应的字符串("null"和"undefined")而不报错。