基本数据类型转换

一、强制转换

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

猜你喜欢

转载自blog.51cto.com/11569511/2417810