今天查看文档的时候看到了以前自己关于JavaScript类型转换的笔记,与大家分享,共进步。
1Boolean型的toString()方法只是输出“true”或“false”,结果由变量的值决定
Var bFound=false;
Alert(bFound。Tostring());//outputs “false
2Number类型的ToString方法:默认模式toString()方法只是用相应的字符串输出数字值(无论是整数。浮点数还是科学记数法)
Var iNum1=10;
Var iNum2=10.0;
Alert(iNum1.toString()); //output “10”
Alert(iNum2.toString());” //output”10”
在默认模式中,无论是最初采用什么表示法声明数字,Number类型的toString()方法返回的都是数字的十进制表示,因此,以八进制或十六进制字面量形式声明的数字输出时都是十进制形式的。
基模式:可以用不用的基输出数字
Var iNum=10;
Alert(iNum。Tostring(2)); //outputs “1010”
Alert(iNum1.tostirng()); //outputs “12”
Alert(Inum1.tostring(16)); //outputs “A”
3parseint()和 parseFloat(),前者把值转换成整数,后者把值转换成浮点数。但是只有对string类型的才管用。对其他类型返回都是NAN。
ParseInt()方法首先查看位置0处的字符。判断是否是个有效数字,如果不是返回NAN,如果是在查看位置1处的字符,以此类推,直到发现非有效数字的字符为止,此时parseint()把该字符之前的字符串转换成数字。
var iNum1=parseInt(“1234blue”); //returns 1234
var iiNum2=parseInt(“0xa”); //returns 10;
var iNum3=parseInt(“22.5”); // return 22;
var iNum4=parseInt(“blue”); //return nan
基模式
var inum1=parseInt(“10”,2); //return 2
var inum2=parseint(“10”,8); //return 8
var iNum3=parseint(“10”,10); //return 10
parseFloat()方法与parseInt()方法的处理方式相似,从位置0开始查看到每个字符,直到找到第一个非有效的字符为止,把该字符之前的字符串转换成数字。不过,对于这个方法来说,第一个出现的小数点是有效字符,下一个小数点就不是了。
另一个不同之处在于,字符串必须以十进制形式表示浮点数。此外它也没有基模式。
Var fnum1=parseFloat(“1234blue”); //return 1234.0
Var fnum2=parseFloat(“0xa”); //return nan
Var fnum3=parseFloat(“22.5”); //return 22.5
Var fnum4=parseFloat(“33.35.2”); //return 33.35
Var fnum5=parseFloat(“0908”); return 908
Var funm6=parseFloat(“blue”); //return nan
3强制类型转换
Boolean()当要转换的值是最少有一个字符的字符串,非0数字或对象时,返回true;如果是空字符串。数字0,undefiend或null返回false。
Var b1=Boolean(“”); //false
Var b2=Boolean(“h1”); //true
Var b3=Boolean(100); //true
Var b4=Boolean(null); //false
Var b5=Boolean(0); //false;
Var b6=Boolean(new object()); //true
Number()的强制类型转换与parseInt()和 parseFloat()方法的处理方式相似,只是它转换的是整个值,而不是部分值。
Number(false) 0
Numbert(ture) 1
Number(undefiend) nan
Number(null) 0
Number(“5.5”) 5.5
Number(“56”) 56
Number(“5.6.8”) nan
Number(new Object()) NAN
Number(100) 100
String()把任何值转换成字符串,强制类型转换和toString()方法的唯一不同之处在于,对null 或undefined值强制类型转换可以生成字符串而不引发错误。
Var s1=String(null); //”null”
Var onull=null;
Var s2=onull.toString(); //won’t work