1, ECMAScript 中的类型转换时简单的, 也有全局方法用来处理稍微复杂一点的转换 . ?
?
2, ?boolean , 数字 ?字符串 都是伪对象 ? 都有toString()方法.?
?
? ? ?默认的toString()方法返回的数值都是10进制的.?
? ? ?要想返回
?
var iNum = 10; alert(iNum.toString(2)); //输出 "1010" alert(iNum.toString(8)); //输出 "12" alert(iNum.toString(16)); //输出 "A" 10 -->A?
3, ?parseInt() 方法?
?
? ? parseInt() 将查看位置0处的字符 , 如果不是数字 就返回NaN ,如果是数字就继续下一个判断, 直到不是数字为止, 也就是说即使 后面有 不是数字的字符 只要第一个是数字 ,他还是会把前面数字的部分返回, 就像 第一个例子那样 ...
?
var iNum1 = parseInt("12345red"); //返回 12345 var iNum1 = parseInt("0xA"); //返回 10 var iNum1 = parseInt("56.9"); //返回 56 var iNum1 = parseInt("red"); //返回 NaN
?
? ?对 二进制, 八进制, 十六进制 也有相应的parseInt() ;
?
var iNum1 = parseInt("AF", 16); //返回 175 var iNum1 = parseInt("10", 2); //返回 2 var iNum2 = parseInt("10", 8); //返回 8 var iNum3 = parseInt("10", 10); //返回 10
?
? ?如果数字前面有 0 , 的话 就会当成八进制数处理 ,?
?
var iNum1 = parseInt("010"); //返回 8 var iNum2 = parseInt("010", 8); //返回 8 var iNum3 = parseInt("010", 10); //返回 10
?
?
4, ?parseFloat()
?
? ?只能是十进制的数字 , 而且第二个小数点后面的内容会被忽略?
var fNum1 = parseFloat("12345red"); //返回 12345 var fNum2 = parseFloat("0xA"); //返回 NaN var fNum3 = parseFloat("11.2"); //返回 11.2 var fNum4 = parseFloat("11.22.33"); //返回 11.22 var fNum5 = parseFloat("0102"); //返回 102 var fNum1 = parseFloat("red"); //返回 NaN?
5, ?强制类型转换?
?
?
? ? ? 有三种方法 Boolean() , Number(), String() ;
?
6, ?Boolean() 方法?
?
var bValue = Boolean(""); // false var bValue = Boolean(null); // false var bvalue = Boolean(0); // false ----- var bValue2 = Boolean("hi") //true var bValue2 = Boolean(20) //true var bValue2 = Boolean(new Object()) //true
?
? ?当空字符串, null/undefined, 数字0 时返回false ;
? ?其他情况为true?
?
?
7, Number() ?函数
?
Number(false) | 0 |
Number(true) | 1 |
Number(undefined) | NaN |
Number(null) | 0 |
Number("1.2") | 1.2 |
Number("12") | 12 |
Number("1.2.3") | NaN |
Number(new object()) | NaN |
Number(50) | 50 |
?
-- ?
? ?和parseInt() , parseFloat() 不同的是, 可以把 false ,true 转化成0 和1?
? ?1.3.4 ?这样不是数字的 会变成NaN 而不是 截取第二个点号之前的值
?
8, ?String() 方法?
?
? ? 转换成字符串只要调用toString()方法就可以了 ?
? ? 和String() 的唯一区别就是 不能吧null /undefined 成功转化 , 而会发生错误.?
?
var s1 = String(null); //"null" var oNull = null; var s2 = oNull.toString(); //会引发错误?
?
?
?