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

  • 相关阅读:
    针对FTP的SSRF攻击
    【无标题】
    大数据开发(Hadoop面试真题-卷三)
    计算程序运行时间 demo
    docker搭建nginx
    SQLite SQL教程之如何实现contains函数,left join 判断一个字符串包含另外一个(教程含源码)
    断点续传-http中Header参数Range(分段请求基础)
    springboot + layui + pageHepler 实现table 表格分页并且多行小计功能
    开源大语言模型(LLM)汇总(持续更新中)
    阿里云服务器(Ubuntu22)上的MySQL8更改为大小写不敏感
  • 原文地址:https://blog.csdn.net/no15870678621/article/details/126024780