008 js中数据类型强制转换——强转Number类型

将其他数据类型转换为Number

方式一:使用Number()函数
  • 字符串 -->数字
    • 如果是纯数字的字符串,则直接将其转换为数字
    • 如果字符串中有非数字的内容转换为NaN
    • 如果字符串是空串或是一个全是空格的字符,则转换为0
  • 布尔 -->数字
    • true 转成 1
    • false 转成 0
  • null -->数字 0
  • undefined -->数字 NaN
方式二:专门用来对付字符串
  • parseInt()函数把一个字符串转换为数字
    • 将一个字符串中的有效的整数内容取出来,然后转Number
  • parseFloat()函数把一个字符串转换为浮点数
    • parseFloat()和parseInt()类似,不同的是他可以获得有效的小数
  • 如果对非非String使用parseInt()或parseFloat(),他会先将其转换为String然后操作
方式三:运算符的延伸
  • 为任意数据类型加一个""空串即可将其转换为String类型
  • 通过一个值减去0,乘以1,除以1,来将其转换为Number类型,原理和Number()函数一样,为隐式类型转换。
  • 前面加一个正号+可以将任意类型转Number类型
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <script type="text/javascript">

        /**
         * 将其他数据类型转换为Number
         *  方式一:
         *       使用Number()函数
         *       字符串 -->数字
         *          1、如果是纯数字的字符串,则直接将其转换为数字
         *          2、如果字符串中有非数字的内容转换为NaN
         *          3、如果字符串是空串或是一个全是空格的字符,则转换为0
         *       布尔 -->数字
         *          1、true 转成 1
         *          2、false 转成 0
         *       null -->数字  0
         *       undefined -->数字  NaN
         *
         *  方式二:
         *       专门用来对付字符串
         *       parseInt()函数把一个字符串转换为数字
         *           将一个字符串中的有效的整数内容取出来,然后转Number
         *       parseFloat()函数把一个字符串转换为浮点数
         *           parseFloat()和parseInt()类似,不同的是他可以获得有效的小数
         *       如果对非非String使用parseInt()或parseFloat(),他会先将其转换为String然后操作
         *
         */
         var a = "123";
         console.log("a的值=" +  a +"----"+"a的类型" + typeof a);


         //调用Number()函数来将a转换为Number类型
         //String为纯数字
        a = Number(a);
        console.log("1-----String为纯数字");
        console.log("a的值=" +  a +"----"+"a的类型" + typeof a);

        //String有非数字
        a = "abc"
        a = Number(a);
        console.log("2-----String有非数字");
        console.log("a的值=" +  a+"----"+"a的类型" + typeof a);
        //String 为空
        a = ""
        a = Number(a);
        console.log("3-----String 为空");
        console.log("a的值=" +  a +"----"+"a的类型" + typeof a);
        //String 全是空格
        a = "     "
        a = Number(a);
        console.log("4-----String 全是空格");
        console.log("a的值=" +  a +"----"+"a的类型" + typeof a);

        a = false
        a = Number(a);
        console.log("5-----a是布尔值 false");
        console.log("a的值=" +  a +"----"+"a的类型" + typeof a);

        a = true
        a = Number(a);
        console.log("6-----a是布尔值true");
        console.log("a的值=" +  a +"----"+"a的类型" + typeof a);

        a = null
        a = Number(a);
        console.log("7-----a是null");
        console.log("a的值=" +  a +"----"+"a的类型" + typeof a);

        a = undefined
        a = Number(a);
        console.log("8-----a是undefined");
        console.log("a的值=" +  a +"----"+"a的类型" + typeof a);

        a = "123px";
        a = parseInt(a);
        console.log("9----- parseInt()方法");
        console.log("a的值=" +  a +"----"+"a的类型" + typeof a);

        a = "123.456px";
        a = parseInt(a);
        console.log("10----- parseInt()方法");
        console.log("a的值=" +  a +"----"+"a的类型" + typeof a);

        a = "b123";
        a = parseInt(a);
        console.log("11----- parseInt()方法");
        console.log("a的值=" +  a +"----"+"a的类型" + typeof a);

        a = true;
        a = parseInt(a);
        console.log("12----- parseInt()方法");
        console.log("a的值=" +  a +"----"+"a的类型" + typeof a);

        a = 123.456;//a为小数,使用改方法也会取整
        a = parseInt(a);
        console.log("13----- parseInt()方法");
        console.log("a的值=" +  a +"----"+"a的类型" + typeof a);

        a = "123.456px";
        a = parseFloat(a);
        console.log("14----- parseFloat()方法");
        console.log("a的值=" +  a +"----"+"a的类型" + typeof a);

        a = "123.456.789px";
        a = parseFloat(a);
        console.log("15----- parseFloat()方法");
        console.log("a的值=" +  a +"----"+"a的类型" + typeof a);

        a = "ab123.456";
        a = parseFloat(a);
        console.log("16----- parseFloat()方法");
        console.log("a的值=" +  a +"----"+"a的类型" + typeof a);
    </script>
</head>
<body>
</body>
</html>

在这里插入图片描述


版权声明:本文为weixin_43729087原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。