一、强制转换
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