• 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"。

    示例:

    1. <script>
    2. var a = 123;
    3. // 注意S必须要大写!
    4. var b = a.toString();
    5. console.log("调用toString()方法后,a的类型为",typeof a);
    6. console.log("b的类型为",typeof b);
    7. console.log("b的值为",b);
    8. // var a = null;
    9. // null值调用该方法会报错
    10. // console.log(a.toString());
    11. a=String(a);
    12. console.log("调用String()函数后,a的值为",a);
    13. console.log("调用String()函数后,a的类型为", typeof a);
    14. script>

    将其他的数据类型转换为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,以此类推

    示例:

    1. <script>
    2. console.log("调用Number()函数后,纯数字128转换为:",Number(128));
    3. console.log("调用Number()函数后,字符串中含非数字内容123abc转换为:",Number('123abc'));
    4. console.log("调用Number()函数后,空串转换为:",Number(''));
    5. console.log("调用Number()函数后,全是空格转换为:",Number(' '));
    6. console.log("调用Number()函数后,布尔值true转换为:",Number(true));
    7. console.log("调用Number()函数后,布尔值false转换为:",Number(false));
    8. console.log("调用Number()函数后,undefined转换为:",Number('undefined'));
    9. var a = 0x22;
    10. // 将a转为十进制,建议只转为10进制,转为其他进制时不是很准确
    11. a = parseInt(a,10)
    12. console.log("调用parseInt()函数后,16进制数字0x22转换10进制为:",parseInt(a));
    13. // 转换过程是从左至右,遇到非数字则解析结束。
    14. console.log("调用parseInt()函数后,带数字的字符串133px转换为:",parseInt('133px'));
    15. console.log("调用parseInt()函数后,带数字的字符串a133px转换为:",parseInt('a133px'));
    16. console.log("调用parseFloat()函数后,带小数的字符串133.456px转换为:",parseFloat('133.456px'));
    17. // 布尔值true转换成了字符串'true',然后解析
    18. console.log("调用parseFloat()函数后,布尔值true转换为:",parseFloat(true));
    19. script>

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

    调用Boolean()函数

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

    示例:

    1. <script>
    2. console.log("调用Boolean()函数后,数字123转换为:",Boolean(123));
    3. console.log("调用Boolean()函数后,数字0转换为:",Boolean(0));
    4. console.log("调用Boolean()函数后,数字-13转换为:",Boolean(-13));
    5. console.log("调用Boolean()函数后,数字Infinity转换为:",Boolean(Infinity));
    6. console.log("调用Boolean()函数后,数字NaN转换为:",Boolean(NaN));
    7. console.log("调用Boolean()函数后,字符串'abc'转换为:",Boolean('abc'));
    8. console.log("调用Boolean()函数后,空字符串''转换为:",Boolean(''));
    9. console.log("调用Boolean()函数后,空值null转换为:",Boolean(null));
    10. console.log("调用Boolean()函数后,特殊值undefined转换为:",Boolean(undefined));
    11. script>

  • 相关阅读:
    Pikachu靶场——文件包含漏洞(File Inclusion)
    【JavaEE进阶序列 | 从小白到工程师】String类常用的成员方法,一文直接上手使用
    ③【操作表数据】MySQL添加数据、修改数据、删除数据
    C#中.NET Framework4.8 Windows窗体应用通过EF访问数据库并对数据库追加、删除记录
    课题学习(六)----安装误差校准、实验方法
    Sentinel注解@SentinelResource详解
    软件测试【秋招面试】字节跳动等各类大厂—面经
    深度解读中国DevOps现状调查报告(2022)
    【Java】使用HttpClient进行简单的post请求
    MySQL之优化服务器设置(五)
  • 原文地址:https://blog.csdn.net/no15870678621/article/details/126024780