• 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>.浏览器打开以上代码渲染结果

  • 相关阅读:
    小小小康
    GC日志补充
    一次GC问题定位
    mycat1.5~1.6的一个bug
    [转] java Statement和PreparedStatement批量更新
    java 中的instanceof 运算符
    Java学习篇之数组方法
    iOS7适配的一点小技巧
    iOS 中正确切换摄像头&正确实现设置帧率的方式
    iOS 音量键事件监控响应
  • 原文地址:https://www.cnblogs.com/yinzhengjie/p/6594771.html
Copyright © 2020-2023  润新知