强制类型转换

强制类型转换为其他数据类型

类型转换主要指:将其他的数据类型转换为String、Number、Boolean

1.将其他的数据类型转换为String

方式一:调用被转换数据类型的toString()方法

调用a的toString()方法 语法:a=a.toString();

注:null和undefined这两个值没有toString方法

​

        var a=100;
        a=a.toString();

        var b=true;
        b=b.toString();
        
        console.log(typeof a);
        console.log(a);

        console.log(typeof b);
        console.log(b);

强制类型转换_第1张图片 

方式二:调用string()方法,并将被转换的数据作为参数传递给函数 

使用string()做强制类型转换,实际上是调用toString方法

注:它会将null直接转换为“null",将undefined直接转换为“undefined”

        var a=100;
        a=String(a);

        var b=true;
        b=String(b);
        
        var c=null;
        c=String(c);

        console.log(typeof a);
        console.log(a);

        console.log(typeof b);
        console.log(b);

        console.log(typeof c);
        console.log(c);

 

强制类型转换_第2张图片 

 

方式三:隐式转换-任意数据类型+“”(引号内的为空串)

对两个字符进行加(+)运算即进行拼串操作,得到一个字符串

任何值和字符串进行运算,先转换为字符串,然后在进行拼串操作。

利用此特点,可将其转换为string;任意数据类型+“”,将任意数据类型先转化为字符串再加上一个空串,即转换为了string。

        var a=100;
        a=a+"把a变成字符串";

        var b=true;
        b=b+"";
        
        console.log(typeof a);
        console.log(a);
       
        console.log(typeof b);
        console.log(b);

 

强制类型转换_第3张图片 

 

2.将其他数据类型转换为Number

方式一:使用Number函数

1)将字符串转换为数字

a.如果是纯数字字符串,则直接转换为数字

b.如果字符串有非数字内容,则转换为NaN

c.如果字符串为空或全是空格,则转换为0

 注:特殊值转数字  true:1 false:0   null:0 undefined:NaN

        var a="123";
        a=Number(a);
        
        var b=true;
        b=Number(b);
        
        var c=null;
        c=Number(c);

        var d=undefined;
        d=Number(d);

        console.log(typeof a);
        console.log(a);
       
        console.log(typeof b);
        console.log(b);

        console.log(typeof c);
        console.log(c);

        console.log(typeof d);
        console.log(d);

 

强制类型转换_第4张图片 

 

2)专门用来对付字符串

a.-parseInt( )将字符串转换为number,将有效的整数内容去出来

b.-parseFloat( )它可以获得有效的小数

        var a="123zhuanhuan";
        a=parseInt(a);
        
        console.log(typeof a);
        console.log(a);

 

强制类型转换_第5张图片 

 

3)转为其他进制数字

16进制-0X开头 8进制-0开头 2进制-0b开头

注:070在string转为number类型时可能十进制,也可能8进制

如若要规定 a=parseInt(070,x),x代表转换为几进制

        var a="070";
        a=parseInt(a,10);

        var b="070";
        b=parseInt(b,8);
        
        console.log(typeof a);
        console.log(a);
       
        console.log(typeof b);
        console.log(b);

强制类型转换_第6张图片 

 

 

方式二:任何值做减法、乘法、除法运算时都会自动转换为Number

注:利用此特点,可以做-0、*1、/1来转换为Number

 

        var a="123";
        a=a*1;
          
        console.log(typeof a);
        console.log(a);

 

 

强制类型转换_第7张图片

 

方式三:任何值用一元运算符正(即+)都会自动转换为Number

        var a="070";
        a=+a;
        
        console.log(typeof a);
        console.log(a);

强制类型转换_第8张图片 

 

3.将其他数据类型转换为Boolean值

1)数字转布尔,除了0和NaN,其余都是true

2)字符串转布尔,除了空串,其余都是true

3)null转布尔值,转为false

4)undefined转布尔值,转为false

        var a=123;
        a=Boolean(a);
        
        var b=0;
        b=Boolean(b);

        var c="";
        c=Boolean(c);

        var d=null;
        d=Boolean(d);

        var e="zifuchuan";
        e=Boolean(e);

        console.log(typeof a);
        console.log(a);
       
        console.log(typeof b);
        console.log(b);
       
        console.log(typeof c);
        console.log(c);
       
        console.log(typeof d);
        console.log(d);
        
        console.log(typeof e);
        console.log(e);

 

强制类型转换_第9张图片 

 

你可能感兴趣的:(前端,javascript)