一、强制转换

1.其他类型转String

a.toString();生成一个新的字符串,不会改变原来的数据类型。 a.toString(2);转换为二进制的字符串。 a.toString(8);转换为八进制的字符串。 String(a);强制转换为字符串类型;

两者区别:x.toString()不能转换null和undefined,如需转换,需重写toString方法。

window.onload=function(){
		var a;
		var b=null;
		//console.log(a.toString(),b.toString());//报错
		//console.log(String(a),String(b));

		function String(x){
				if(x===undefined){
						return "undefined";
				}else if(x===null){
						return "null";
				}else{
						return x.toString();
				}
		}
}

2.其他类型转Number

Number(b); true , 00001 ---> 1; null , "" , [] , [""] , false , " " , [" "] ---> 0; 其他进制 ---> 十进制 undefined , 123abc , "abc" , ["web"] , ["1","2"] --->NaN ["10"] , "10" ---> 10

3.parseInt & parseFloat

parseInt("123abc") , parsFloat("123abc") ---> 123 parseInt("Fd123") , parseFloat("Fd123") ---> NaN parseInt("0xf") ---> 15 parseFloat("0xf") ---> 0 parseInt(7.5) ---> 7 parseFloat(7.0) --->7

二、隐式转换

1.字符串数字遇到运算符会自动转成Number类型。(+,-,*,%,/,>,<,=) 2.+ 前是字符串的话,后面的Number类型会自动转换为String类型。 3.null , false ,""," " 运算时转为 数值 0;true 计算时转为 数值 1 。 4.undefined ---> NaN