JavaScript基础知识-强制类型转换

            JavaScript基础知识-强制类型转换

                                          作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.强制类型转换-String

1>.JavaScript源代码

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>强制类型转换-String</title>
        
        <script type="text/javascript">
            /**
             *     强制类型转换:
             *         指将一个数据类型转换成其它数据类型;
             *         类型转换只要指将其他的数据类型转换为String,Number,Boolean
             * 
             */
            
            
            /**
             *     将其它的数据类型转换为String:
             *         方式一:
             *             调用被转换数据类型的toString()方法;
             *                 该方法不会影响到原变量,它会将转换的结果返回;
             *                 温馨提示:
             *                     null和undefined这两个值没有toString()方法,如果调用它们的方法会报错。
             *         方式二:
             *             调用String()函数,并将转换的数据作为参数传递给函数。
             *             使用String()函数做强制类型转换时,对应规则如下:
             *                 对于Number和Boolean实际上就是调用toString()方法
             *                 对于null和undefined,就不会调用toString()方法,它会将字面量null直接转换为字符串"null",将字面量undefined直接转换为字符串"undefined"。
             */
            
            var a = 18;
            var a1 = a.toString();
            var b = null;            
            //var b1 = b.toString();     //会报错:"Uncaught TypeError: Cannot read property 'toString' of null"
            var b1 = String(c);
            var c = undefined;
            //var c1 = c.toString();    //会报错:"Uncaught TypeError: Cannot read property 'toString' of undefined"
            var c1 = String(c);
            console.log(a1,typeof a1);
            console.log(b1,typeof b1);    
             console.log(c1,typeof c1);

        </script>
    </head>
    <body>
    </body>
</html>

2>.浏览器打开以上代码渲染结果

二.强制类型转换-Number

1>.JavaScript源代码

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>强制类型转换-Number</title>
        
        <script type="text/javascript">
            
            /**
             *     将其它数据类转换为Number。
             *         方式一:
             *             使用Number()函数,转换情况如下:
             *                 字符串转换数字时:
             *                     1>.如果时纯数字的字符串,则直接将其转换为数字;
             *                     2>.如果字符串有非数字的内容,则转换为NaN;
             *                     3>.如果字符串是空串或者是一个全是空格的字符,则转换为0;
             *                  布尔值转换数字时:
             *                     1>.true转换为1;
             *                     2>.false转换为0;
             *                  Null转换为数字时:
             *                     直接转换为0.
             *                  undefined转换为数字时:
             *                      直接转换为NaN .
             * 
             *         方式二:
             *             这种方式专门用来对付字符串。
             *                 parseInt():
             *                     把一个字符串转换为一个整数,它可以将一个字符串中有效的整数内容取出来。
             *                 parseFloat():
             *                     把一个字符串转换为一个浮点数,同理,它可以将一个字符串中有效的浮点数内容取出来。
             *             温馨提示:
             *                 如果对非String的数据类型使用parseInt()或者parseFloat()方法时,它们会先将其转换成String,然后再进一步处理。
             * 
             */
            var a  = "2019";
            var a1 = Number(a);
            var b  = "尹正杰2019";
            var b1 = Number(b);
            var c  = "       ";
            var c1 = Number(c);
            console.log(a1,typeof a1);
            console.log(b1,typeof b1);
             console.log(c1,typeof c1);
             
             var d  = true;
             var d1 = Number(d);
             var e  = false;
             var e1 = Number(e);
             console.log(d1,typeof d1);
             console.log(e1,typeof e1);
             
             var f = undefined;
             var f1 = Number(f);
             console.log(f1,typeof f1);
             
             var g = null;
             var g1 = Number(g);
             console.log(g1,typeof g1);
             
             
             var f  = "300px";
             var f1 = parseInt(f);
             console.log(f1,typeof f1);
             
             var g  = "3.1415926px";
             var g1 = parseFloat(g);
             console.log(g1,typeof g1);
             
             /**
              *     在js中,其它进制数字默认打印时默认会转换为十进制输出:
              *         如果需要表示十六进制的数字,则需要"0x"开头,;
              *         如果需要表示八进制的数字,则需要使用"0"开头;
              *         如果需要表示二进制的数字,则需要使用"0b"开头;
              */
             i = 0x10;
             j = "070";
             j1 = parseInt(j);        //像"070"这种字符串,有些浏览器会当成8进制解析,有时会当成10进制解析;
             j2 = parseInt(j,10);    //可以在parseInt()中传递第二个参数,来指定数字的进制;
             k = 0b111010;
             console.log(i);
             console.log(j);
             console.log(k);
             console.log(j1);
             console.log(j2);
        </script>
    </head>
    <body>
    </body>
</html>

2>.浏览器打开以上代码渲染结果

三.强制类型转换-Boolean

1>.JavaScript源代码

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>强制类型转换-Boolean</title>
        
        <script type="text/javascript">
            
             /**
              *     将其它的数据类型转换为Boolean,使用Boolean()函数,转换情况如下:
              *         数字转布尔值:
              *             除了0和NaN,其余的都转换为true。
              *         字符串转布尔值:
              *             除了空串,其余的都转换为true。
              *         null和undefined转布尔值:
              *             都转换为false。
              *         对象转换成布尔值:
              *             直接转换为true。
              */
             var a = 100;
             var a1 = Boolean(a);
             console.log(a1,typeof a1);
             
             var b = -100;
             var b1 = Boolean(b);
             console.log(b1,typeof b1);
             
             var c = 0;
             var c1 = Boolean(c);
             console.log(c1,typeof c1);
             
             var d = Infinity;
             var d1 = Boolean(d);
             console.log(d1,typeof d1);
             
             var e = NaN;
             var e1 = Boolean(e);
             console.log(e1);
             
             var f = "错误"
             var f1 = Boolean(f);
             console.log(f1, typeof f1);
             
             var g = "   ";
             var g1 = Boolean(g);
             console.log(g1,typeof g1);
             
             var h = null;
             var h1 = Boolean(h);
             console.log(h1, typeof h1);
             
             var i = undefined;
             var i1 = Boolean(i);
             console.log(i1,typeof i1);
             
        </script>
    </head>
    <body>
    </body>
</html>

2>.浏览器打开以上代码渲染结果

原文地址:https://www.cnblogs.com/yinzhengjie/p/6594771.html