JavaScript基础(4)_强制类型转换

强制类型转换

强制类型转换:指将一个数据类型强制转换为其他的数据类型,下面主要讲的是转换为String、Number、Boolean这三种类型。

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

方式一:调用被转换数据类型的toString()方法,该方法不会影响到原变量,它会将转换的结果返回。
语法格式:调用xxx的yyy()方法,就是xxx.yyy()。

注意:null和undefined这两个值没有toString()方法,如果调用该方法会报错。

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

底层说明:使用String()函数做强制类型转换时,对于Number和Boolean实际上底层就是调用toString()方法,但是对于null和undefined,就不会调用toString()方法。它会将null直接转换为字符串"null",将undefined直接转换为字符串"undefined"。

示例:

<body>
    <script>
        var a = 123;
        // 注意S必须要大写!
        var b = a.toString();
        console.log("调用toString()方法后,a的类型为",typeof a);
        console.log("b的类型为",typeof b);
        console.log("b的值为",b);
        // var a = null;
        // null值调用该方法会报错
        // console.log(a.toString());
        a=String(a);
        console.log("调用String()函数后,a的值为",a);
        console.log("调用String()函数后,a的类型为", typeof a); 
    </script>
</body>

将其他的数据类型转换为Number型

转换方式一:调用Number()函数

字符串 --> 数字
1、如果是纯数字的字符串,则直接将其转换为数字。
2、如果字符串中有非数字的内容,则转换为NaN。
3、如果字符串是一个空串或者是一个全是空格的字符串,则转换为0。
4、布尔值转数字:true-->1、false-->0 。
5、undefined转数字:NaN 。

转换方式二:调用parseInt()函数、parseFloat()函数(此方式专门用于解析含数字的字符串)

parseInt():  取出字符串中的有效的整数内容,然后转换为Number。(从左向右读取,遇到非整数暂停)
parseFloat():取出字符串中的有效的小数内容,然后转换为Number。(从左向右读取,遇到非整数或非小数暂停)

注意:对非字符串使用parseInt()或parseFloat(),它会先将其转换为字符串型然后再操作。

补充:数字的其他进制:

         十进制(正常数字) :逢10进1,能够出现的数字是0-9
         二进制(以0b(0B)开头):逢2进1,能够出现的数字是0-1
         八进制(以0开头):逢8进1,能够出现的数字是0-7
         十六进制(以0x(0X)开头):逢16进1,能够出现的数字是0-9以及a-f,a表示10,以此类推

示例:

<body>
    <script>
        console.log("调用Number()函数后,纯数字128转换为:",Number(128));
        console.log("调用Number()函数后,字符串中含非数字内容123abc转换为:",Number('123abc'));
        console.log("调用Number()函数后,空串转换为:",Number(''));
        console.log("调用Number()函数后,全是空格转换为:",Number('   '));
        console.log("调用Number()函数后,布尔值true转换为:",Number(true));
        console.log("调用Number()函数后,布尔值false转换为:",Number(false));
        console.log("调用Number()函数后,undefined转换为:",Number('undefined'));

        var a = 0x22;
        // 将a转为十进制,建议只转为10进制,转为其他进制时不是很准确
        a = parseInt(a,10)
        console.log("调用parseInt()函数后,16进制数字0x22转换10进制为:",parseInt(a));
        // 转换过程是从左至右,遇到非数字则解析结束。
        console.log("调用parseInt()函数后,带数字的字符串133px转换为:",parseInt('133px'));
        console.log("调用parseInt()函数后,带数字的字符串a133px转换为:",parseInt('a133px'));
        console.log("调用parseFloat()函数后,带小数的字符串133.456px转换为:",parseFloat('133.456px'));
        // 布尔值true转换成了字符串'true',然后解析
        console.log("调用parseFloat()函数后,布尔值true转换为:",parseFloat(true));
    </script>
</body>

将其他的数据类型转换为Boolean型

调用Boolean()函数

数字转换为布尔值:除了0和Nan,其余都是true
字符串转换为布尔值:除了空串,其余都是true
null、undefined转换为布尔值:false

示例:

 <body>
        <script>
        console.log("调用Boolean()函数后,数字123转换为:",Boolean(123));
        console.log("调用Boolean()函数后,数字0转换为:",Boolean(0));
        console.log("调用Boolean()函数后,数字-13转换为:",Boolean(-13));
        console.log("调用Boolean()函数后,数字Infinity转换为:",Boolean(Infinity));
        console.log("调用Boolean()函数后,数字NaN转换为:",Boolean(NaN));
        console.log("调用Boolean()函数后,字符串'abc'转换为:",Boolean('abc'));
        console.log("调用Boolean()函数后,空字符串''转换为:",Boolean(''));
        console.log("调用Boolean()函数后,空值null转换为:",Boolean(null));
        console.log("调用Boolean()函数后,特殊值undefined转换为:",Boolean(undefined));
    </script>
</body>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值