js 高级学习笔记 ( 六 ) 类型转换
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");//返回 12345var iNum1 = parseInt("0xA");//返回 10var iNum1 = parseInt("56.9");//返回 56var iNum1 = parseInt("red");//返回 NaN?
? ?对 二进制, 八进制, 十六进制 也有相应的parseInt() ;
?
var iNum1 = parseInt("AF", 16); //返回 175var iNum1 = parseInt("10", 2); //返回 2var iNum2 = parseInt("10", 8); //返回 8var iNum3 = parseInt("10", 10); //返回 10?
? ?如果数字前面有 0 , 的话 就会当成八进制数处理 ,?
?
var iNum1 = parseInt("010");//返回 8var iNum2 = parseInt("010", 8);//返回 8var iNum3 = parseInt("010", 10);//返回 10?
?
4, ?parseFloat()
?
? ?只能是十进制的数字 , 而且第二个小数点后面的内容会被忽略?
var fNum1 = parseFloat("12345red");//返回 12345var fNum2 = parseFloat("0xA"); //返回 NaNvar fNum3 = parseFloat("11.2"); //返回 11.2var fNum4 = parseFloat("11.22.33"); //返回 11.22var fNum5 = parseFloat("0102"); //返回 102var fNum1 = parseFloat("red"); //返回 NaN?5, ?强制类型转换?
?
?
? ? ? 有三种方法 Boolean() , Number(), String() ;
?
6, ?Boolean() 方法?
?
var bValue = Boolean(""); // falsevar bValue = Boolean(null); // falsevar bvalue = Boolean(0); // false-----var bValue2 = Boolean("hi") //true var bValue2 = Boolean(20) //truevar bValue2 = Boolean(new Object()) //true ?
? ?当空字符串, null/undefined, 数字0 时返回false ;
? ?其他情况为true?
?
?
7, Number() ?函数
?
var s1 = String(null);//"null"var oNull = null;var s2 = oNull.toString();//会引发错误??
?
?